Go_数据类型

数据类型

  • intuintintptruintptr 在64位机器为64位,在32位机器为32位
数据类型初始值说明
boolfalse1字节,true或false
int uint064位机器:8字节 32位:4字节
int8 int16 int32 int640有符号整数
uint8 uint16 uint32 uint640无符号整数
float32 float640浮点数
complex64 complex1280+0i复数,real()取实部 imag()取虚部
byte rune0字符,byte即uint8 rune即int32
string“”字符串,2字节
uintptr08字节 存储变量地址 用于处理指针偏移
指针nil8字节
slicenil24字节,切片即动态数组
mapnil8字节
channil8字节
数组根据类型赋相应初值由数据类型和数组大小确定
struct各字段类型的初值
函数nil
interfacenil

make函数

  • make函数只可用于生成切片slice、map和chan
//当长度超过容量,切片会重新分配内存
list1 := []int{}				//长度为0,容量为0的切片[]
list2 := []int{1,2,3}			//长度为3,容量为3的切片[1 2 3]
list3 := make([]int,3)			//长度为3,容量为3的切片[0 0 0]
list4 := make([]int,3,5)		//长度为3,容量为5的切片[0 0 0]

m1 := map[int]string{}							//空的map[int]string
m2 := map[int]string{1:"nihao",2:"world"}		//长度为2的map[int]string
m3 := make(map[int]string)						//空的map[int]string

//无缓存即同步,没有中间人,双方直接传递数据
//有缓存即异步,发送者将数据放到中间人(即缓存),接受者从中间人取出数据
ch1 := make(chan int)			//不带缓存的int通道
ch2 := make(chan int,3)			//缓存为3的int通道

new函数

  • 函数只有一个参数即数据类型,函数将创建并初始化一个该类型的对象,并返回一个指向该对象的指针
  • 数据类型指上述所有数据类型
p := new(int)
p := new([3]int)

//下述一般不推荐使用,没有什么实际意义
x := new(interface{})
list := new([]int)
m := new(map[int]string)
ch := new(chan int)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值