【发布时间】:2017-03-11 00:46:46
【问题描述】:
数组移位函数如何与切片一起使用?
package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11, 13}
for k, v := range s {
x, a := s[0], s[1:] // get and remove the 0 index element from slice
fmt.Println(a) // print 0 index element
}
}
我从切片技巧中找到了一个示例,但无法正确使用。
https://github.com/golang/go/wiki/SliceTricks
x, a := a[0], a[1:]
编辑你能解释一下为什么 x 在这里没有定义吗?
以答案为基础并与 SliceTricks 合并
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11, 13}
fmt.Println(len(s), s)
for len(s) > 0 {
x, s = s[0], s[1:] // undefined: x
fmt.Println(x) // undefined: x
}
fmt.Println(len(s), s)
}
【问题讨论】:
-
tmp/sandbox471444382/main.go:10: syntax error: unexpected { at end of statement -
是什么让你认为 slice 有
shift方法? -
github.com/golang/go/wiki/SliceTricks 提到了一个名为 Shift 的子标题
-
这不是方法名。此外,Go 也没有
while循环;foris Go'swhile. -
好的,抱歉我是这种语言的新手,在这种情况下的策略是什么,从一开始就删除一个元素,每次迭代并打印它