1. 首页
  2. 主题
  3. Go问与答

空切片问题

sharkLoc · · 1652 次点击
我又来了,代码如下: s1和s2 都是空切片,长度都为零,为何跟nil比较结果不一样呢? ``` package main import "fmt" func main() { var s1 = []string{} var s2 []string fmt.Println(s1 == nil, s1, len(s1)) // 输出 false [] 0 fmt.Println(s2 == nil, s2, len(s2)) // 输出 true [] 0 } ```
对应的内存地址空间不一样,所以不相等。
#18
更多评论
明白了,s1相当于已经做一次初始化,已经分配内存了,就不等于nil ![ss.png](https://static.studygolang.com/220113/8c3b175899f50612f103041c2c9c94cf.png)
#1
这种用法是不对的,不应该对slice进行nil判断,应该进行len()取长度
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中