先整明白go里面的几大变量“类型
”(不严谨,只是个人在使用的时候常用到的结构的一个划分)
(1) 值类型: int32, string, struct 这种
(2) 引用类型:主要是map, slice,chan 这三个引用(make创建内存的)
(3)指针类型:那就多了, *int64, *struct…
(1)对于值类型的变量,我们通过var 声明(包括结构体),系统会默认为他分配内存空间,并赋该类型的零值。如下,我们声明一个int类型变量i,输出为0。
var i int
fmt.Println(i) //i=0
而如果我们声明一个指针类型的变量,系统不会为他分配内存,默认就是nil
。此时如果你想直接使用,那么系统会抛异常。