golang的基本数据类型有五种:
- 整数型
- 小数型
- 字符型
- 布尔型
- 字符串型
二字符串底层存储方式
string:
golang默认编码方式UTF-8
存储:字符集+编码
字符串类型的存储方式:data起始地址+字节个数
golang中字符串内容是不会修改的,所以编译器会把字符串分配到 只读内存段,若要修改,尽量重新定义或者通过转字节使用slice操作。
三值类型和引用类型
值类型定义:变量直接存储,通常在栈上分配
引用类型定义:变量存储的是data的内存地址,通常在堆上分配.
go中的值类型:五大基本数据类型以及结构体struct
go中的引用类型:切片slice,字典map,以及指针,通道chan
**定义引用类型的两种方式:make &&new**
new和make相同之处都是用来定义引用类型的,
不同的是:
1.new在定义引用类型时,只为他们分配内存,这些内存会被清零
make在定义时不仅要为他们分配内存而且要进行初始化,
字符为nil,整型为0, 逻辑值为false
2.new和make在返回时也有不同,new返回的是*type,make返回的是type即引用
3.new可以初始化任意的数据类型,而make只能初始化slice,map,chan这三种数据类型
基本的总结,以后学到还会补充,下一篇是引用类型slice&&map