[随笔][Golang][nil]

tydldd 2019-10-22

  • nil 是不能比较的

  • 不同类型的nil的address是一样的

  • 不同类型的nil是不能比较的

  • nil 是map, slice, pointer, channel, func, interface的零值

  • immutable type 不是引用类型,int , string, bool都不是引用类型

  • 在 immutable type 中不存在两个变量内存地址是一样的

  • map可以在函数内部改变,但是map不是引用类型

    go中函数传递参数是按值传递的,在函数内部无法改变函数外部的值,但是map可以。
    map不是引用,但是作为参数传递的时候可以在函数内部改变函数实参的值???可能传递的是map的指针???

  • channel 也是按值传递

  • map 不是应用类型,为什么可以在函数内部改变???

    hashmap的底层是一个指向hmap的指针,由于传递的是指针的拷贝,指针指向底层hmap并没有改变,所以可以在函数内部改变map

相关推荐