2-变量与常量(go基础)
变量与常量
变量
声明变量的一般形式是使用 var 关键字。
1 | // 方法一:声明一个变量, 默认的值是0 |
常量
定义一个常量,使用 const 关键字。常量定义的时候就要赋值。
1 | // 常量(只读属性) |
关键字
1 | break default func interface select |
make和new的区别
new函数
内置函数 new
分配内存。该函数只接受一个参数,该参数是一个任意类型(包括自定义类型),而不是值,返回指向该类型新分配零值的指针。
使用 new
函数首先会分配内存,并设置类型零值,最后返回指向该类型新分配零值的指针。
1 | package main |
make 函数
内置函数 make
只能分配和初始化类型为 slice
、 map
或 chan
的对象。与 new
一样,第一个参数是类型,而不是值。与 new
不同, make
的返回类型与其参数的类型相同,而不是指向它的指针。结果取决于类型:
slice
:size 指定长度。切片的容量等于其长度。可提供第三个参数以指定不同的容量;它不能小于长度。map
:为空映射分配足够的空间来容纳指定数量的元素。可以省略大小,在这种情况下,分配一个小的起始大小。chan
:使用指定的缓冲区容量初始化通道的缓冲区。如果为零,或者忽略了大小,则通道是无缓冲的。
1 | // slice |
new 和 make 的区别
new
:为所有的类型分配内存,并初始化为零值,返回指针。
make
:只能为 slice
、 map
、 chan
分配内存,并初始化,返回的是类型。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 贾小白博客!