Go 的范围可以遍历映射和切片,但我想知道是否有一种方法可以遍历一系列数字,如下所示:
for i := range [1..10] {
fmt.Println(i)
}
或者有没有一种方法可以像 Ruby 对 Range 类所做的那样在 Go 中表示整数范围?
原文由 Vishnu 发布,翻译遵循 CC BY-SA 4.0 许可协议
Go 的范围可以遍历映射和切片,但我想知道是否有一种方法可以遍历一系列数字,如下所示:
for i := range [1..10] {
fmt.Println(i)
}
或者有没有一种方法可以像 Ruby 对 Range 类所做的那样在 Go 中表示整数范围?
原文由 Vishnu 发布,翻译遵循 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 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
4 回答2.2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答937 阅读✓ 已解决
2 回答2.3k 阅读
Go 中的惯用方法是像这样编写一个 for 循环。
范围肯定有优势,并且它们在许多其他语言中使用,但 Go 的设计原则是仅在收益大大超过成本(包括使语言更大的成本)时引入抽象。理性的人不同意范围的成本和收益,但这个答案是我试图描述我认为惯用的 Go 是什么。