3 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
您可以使用goto语句(不推荐)。
package main
import (
"fmt"
)
func main() {
my_slice := []string {"a", "b", "c", "d"}
index := 0
back:
if index < len(my_slice) {
fmt.Println(my_slice[index])
index += 1
goto back
}
}
白衣非少年
TA贡献1155条经验 获得超0个赞
您可以使用递归函数来迭代切片。尾递归可以防止@vutran 提到的堆栈溢出。
package main
import "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。
- 3 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消