如何用 Go 语言实现不依赖 for 循环的数组或切片遍历方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计490个文字,预计阅读时间需要2分钟。
虽然 Go 语言设计哲学强调简洁与可读性,且 for 是官方唯一原生支持的循环结构(while、do-while 等均不存在),但严格来说,不使用 for 语句仍可实现切片遍历——最直接(但非推荐)的方式是借助 goto 语句模拟循环逻辑。
以下是一个使用 goto 遍历字符串切片的完整示例:
package main import "fmt" func main() { mySlice := []string{"a", "b", "c", "d"} index := 0 back: if index < len(mySlice) { fmt.Println(mySlice[index]) index++ goto back } }
该代码通过标签 back 和条件跳转,实现了等价于 for range 或传统 for i := 0; i < len(s); i++ 的效果。运行将依次输出 a、b、c、d。
本文共计490个文字,预计阅读时间需要2分钟。
虽然 Go 语言设计哲学强调简洁与可读性,且 for 是官方唯一原生支持的循环结构(while、do-while 等均不存在),但严格来说,不使用 for 语句仍可实现切片遍历——最直接(但非推荐)的方式是借助 goto 语句模拟循环逻辑。
以下是一个使用 goto 遍历字符串切片的完整示例:
package main import "fmt" func main() { mySlice := []string{"a", "b", "c", "d"} index := 0 back: if index < len(mySlice) { fmt.Println(mySlice[index]) index++ goto back } }
该代码通过标签 back 和条件跳转,实现了等价于 for range 或传统 for i := 0; i < len(s); i++ 的效果。运行将依次输出 a、b、c、d。

