白衣非少年
您可以使用递归函数来迭代切片。尾递归可以防止@vutran 提到的堆栈溢出。package mainimport "fmt"func num(a []string, i int) { if i >= len(a) { return } else { fmt.Println(i, a[i]) //0 a 1 b 2 c i += 1 num(a, i) //tail recursion }}func main() { a := []string{"a", "b", "c"} i := 0 num(a, i)}一个可能更易读但不那么纯粹的例子可以使用匿名函数。参见https://play.golang.org/p/Qen6BKviWuE。