有没有办法遍历整数范围?

新手上路,请多包涵

Go 的范围可以遍历映射和切片,但我想知道是否有一种方法可以遍历一系列数字,如下所示:

 for i := range [1..10] {
    fmt.Println(i)
}

或者有没有一种方法可以像 Ruby 对 Range 类所做的那样在 Go 中表示整数范围

原文由 Vishnu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 565
2 个回答

Go 中的惯用方法是像这样编写一个 for 循环。

 for i := 1; i <= 10; i++ {
    fmt.Println(i)
}

范围肯定有优势,并且它们在许多其他语言中使用,但 Go 的设计原则是仅在收益大大超过成本(包括使语言更大的成本)时引入抽象。理性的人不同意范围的成本和收益,但这个答案是我试图描述我认为惯用的 Go 是什么。

原文由 Paul Hankin 发布,翻译遵循 CC BY-SA 4.0 许可协议

Mark Mishyn 建议使用 slice 但没有理由使用 make 创建数组并在 for 中使用返回的切片 当可以使用通过文字创建的数组并且它更短时

for i := range [5]int{} {
        fmt.Println(i)
}

原文由 Daniil Grankin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏