【问题标题】:Initialize golang slice with int numbers from 0 to N使用从 0 到 N 的整数初始化 golang 切片
【发布时间】:2016-10-06 10:12:17
【问题描述】:

我几乎可以肯定,我读到了一种简单的“棘手”方法来初始化具有从 0 到 N 的数字的整数切片,但我再也找不到它了。

最简单的方法是什么?

【问题讨论】:

  • 只是一个想法,iota 可能是你记得的,虽然这是用于 const 的,我不知道如何在切片上使用它。

标签: go initialization slice


【解决方案1】:

您只需使用 make 传递 N 的长度,然后使用简单的 for 循环来设置值...

mySlice := make([]int, N)
for i := 0; i < N; i++ {
      mySlice[i] = i
}

这是一个完整的游戏示例; https://play.golang.org/p/yvyzuWxN1M

【讨论】:

  • 我是否阅读了一种针对其他语言的单行方法?我是新手。
  • @gsf 可能是的。有许多语言可以在一行中完成,但不能在 Go 中完成。您可以使用所谓的“复合文字”语法在同一语句中进行分配和初始化,但这需要您写出值,因此当您有任意长度 N 时它不起作用。一行代码,三行代码,到底有什么区别?它易于阅读和理解,这才是真正重要的。
  • 是的,没关系,除非你在一家竞争激烈的公司工作,如果你错过了这样的细节,每个人都会开始挑剔你
  • 我认为范围更好for i := range mySlice { mySlice[i] = i }
  • 根据我的经验,错误通常是由于在您的答案中更改 N 之一但忘记更改另一个而引入的。
猜你喜欢
  • 2017-11-19
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 2017-10-29
  • 2017-07-23
  • 2022-12-19
相关资源
最近更新 更多