数组 – 测试索引超出范围golang
发布时间:2020-12-16 19:26:41 所属栏目:大数据 来源:网络整理
导读:很抱歉这个noob问题,但我不确定我如何测试我正在访问的元素是否对数组有效,请考虑以下设计代码: func main() { strings := []string{"abc","def","ghi","jkl"} for i := 0; i5; i++ { if strings[i] { fmt.Println(strings[i]) } }} https://play.golang.or
很抱歉这个noob问题,但我不确定我如何测试我正在访问的元素是否对数组有效,请考虑以下设计代码:
func main() { strings := []string{"abc","def","ghi","jkl"} for i := 0; i<5; i++ { if strings[i] { fmt.Println(strings[i]) } } } https://play.golang.org/p/8QjGadu6Fu 我显然超出了界限,但我不确定如何测试以防止错误.我已经习惯了PHP,我会使用isset或!empty测试,确实会有这样的事情吗? 我已经浏览了其他问题并看到了使用的len函数,但这似乎不起作用.
在Go中,这并不像在PHP中那么容易 – 但请记住,在PHP中它很容易,因为“索引”数组实际上是关联数组.否则,您将无法通过取消设置单个元素来“打孔”.
使用Go数组/切片,您必须实际检查数组的长度,如您所写: if i>=0 && i<len(strings) {...} 就个人而言,我还没有遇到需要这样做的现实生活情况 – 在你的例子中,你可以使用范围(字符串)并且不再担心索引. 使用映射,它是Go等效的PHP数组,您可以通过编写“isset”: value,isset := map[index] 如果地图中存在索引,则将适当设置值并且isset将为true;如果不是,则将值设置为地图类型的零值,并且isset将为false. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |