來自 go程序設計語言 一書源博客地址go程序設計語言練習題數組
package main import ( "bytes" "fmt" ) func main() { fmt.Println(comma("1234567889988")) } func comma(s string) string { var newByte byte = ',' n := len(s) buf := bytes.NewBuffer([]byte{}) if n <= 3 { return s } for i := 0; i < n; i++ { if (n-i)%3 == 0 && i != 0 { buf.WriteByte(newByte) } buf.WriteByte(s[i]) } return buf.String() }
package main import ( "fmt" ) func main() { var arr [7]int = [7]int{1, 2, 3, 6, 48, 299, 4990} reverse(&arr) fmt.Println("In main(), arr values:", arr) } func reverse(arr *[7]int) { for i, j := 0, len(*arr)-1; i < j; i, j = i+1, j-1 { (*arr)[i], (*arr)[j] = (*arr)[j], (*arr)[i] } }
package main import ( "fmt" ) func main() { x := []int{1, 1, 2, 3, 4, 4, 4, 5, 6, 6, 7, 7} x = remove(x) fmt.Printf("%d", x) } func remove(slice []int) []int { for i := range slice { if i > len(slice)-1 { return slice } fmt.Printf("%d\n", slice) if i < len(slice)-1 && slice[i] == slice[i+1] { copy(slice[i:], slice[i+1:]) slice = slice[:len(slice)-1] fmt.Printf("%d \n", slice) return remove(slice) } } return slice }