如何在Go中检查切片是否具有给定索引?

mar*_*cio 24 go slice

我们可以使用地图轻松完成:

item, ok := myMap["index"]
Run Code Online (Sandbox Code Playgroud)

但不是切片:

item, ok := mySlice[3] // panic!
Run Code Online (Sandbox Code Playgroud)

感到惊讶的是之前没有被问过.也许我用Go切片在错误的心理模型上?

lau*_*ent 27

Go中没有稀疏切片,因此您只需检查长度:

if len(mySlice) > 3 {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果长度大于3,则您知道索引3以及之前的所有索引.

  • 索引从0开始,因此如果您想要索引3处的某些内容,则需要长度为4. (7认同)
  • 是的,golang 显然不是为程序员开发的 (4认同)
  • @marcioAlmada听起来像是来自javascript/php. (3认同)