概括
1. 在golang中一切都是值传递
包括指针,也是一种拷贝而已
2. 结构体不能和nil比较
比如:
type Person struct {
}
func mian() {
var p Person
if p == nil { //这里会报错
}
}
3. golang不能比较的一些规则
一个经验:对于一些复合类型能否比较取决于底层的依赖的数据类型;比如结构体,必须要要结构体中的所有字段都可比较那么结构才能比较。
另外一个经验:如果是一个nil一般也是可以比较的,结构体实例化后不能和nil比较。
另外:切片不可比较(要比较通过比较切片中的每个元素)
map映射不可比较,要比较也是要按照key依次去比较
4. 切片容量扩容规则
是达到后按照当前容量的2x扩容