golang make指定长度的疑问
伪代码:
containers := make([]string, len(faces))
for _, face := range faces {
if face == FaceNil {
break
}
containers := append(containers, face)
}
如果这样直接申明10个length的底层数组,那么循环下来,假设face有FaceNil的情况,就会出现切片元素有nil的情况,然后在另外一个地方循环containers变量的时候就需要判断是否有元素为nil,但是make([]string, 0)
的话nil
就不存在,大家遇到这种情况的最佳写法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第三个是容量,cap. 而且你的containers := append(containers, face). 重新赋值了。
sorry 看到这个问题的大佬无视吧,我错误的理解make的第二个参数,第二个参数如果指定长度,那么这个slice有零值,我以为没有零值