Go 各种初始化

变量

var num int
var (//批量声明
	num int
	name string
	isman bool
)
var num int = 10
var num = 10//类型推导
var a,b = 12,"abc"//一次性初始化多个变量

常量

常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值

const name = "tjs"
const (
	pi = 3.1415926
	num = 10
)
const(
	a1 = 100
	a2
	a3
)//a1,a2,a3值相同

数组

var names [3]string
names[0] = "zxcv"
//初始化
var names = [3]string{"xxx","yyy"}
var ages = [...]int{12,34,3}//数组长度自行推断
a := [...]string{1:"xxx",3:"bbb"}//使用指定索引值的方式来初始化数组

二维数组

var strs[2][4]string
a := [2][3]int{{1,2},
				{3,4}}
a := [...][3] float32{{1.3,2.45,3.65},
						{2.2,4.6,23.45}}
//注意: 多维数组只有第一层可以使用...来让编译器推导数组长度。
var nums = [2][3]int{{1,2,3},{1,1,1}}

切片

//第一种先声明,再通过make函数分配地址
var a []int
a = make([]int,10)
//第二种,声明的同时赋值,直接分配地址
var ages = []int{12,21,22,23}
var Is = []bool{false,true,true}
//使用短变量声明赋值初始化
a:= []int{1,2,3,4}
//使用  make函数+短变量声明  初始化切片
a := make([]string,2,10)
//	2为切片元素个数,10为切片容量。

map

先声明,再用make函数分配地址
map的初试化类似切片

var scorce map[int]string//0x0
scorce = make(map[int]string,10)//0xc000033f40
//10为容量

元素为map类型的切片

var mapslice = make([]map[int]string,10)
//第二种
var b []map[int]bool
b = make([]map[int]bool,10)
//第三种
mapslice := make([]map[int]string,10)

值为切片类型的map

var slicemap= make(map[string][]int,10)

指针

var a *int//a = 0x0
a = new(int)//*a = 0 a = 0xc000033f68
*a = 100//*a = 100
//第二种
a:= new(int) // a = 0xc000033f68 *a = 0
//第三种

//指针数组
var nums [3]*int
print(nums[0])//0x0
nums[0] = new(int)
println(*nums[0],nums[0])//0,0xc000033f68
//数组指针
var nums *[2]int
nums = new([2]int)
println(nums[0])//0

数组指针是一个指向数组的指针
指针数组是指一个数组中的每个元素都是指针

结构体

//声明-------------------------------------------------------------------------
type person struct{
	age int
	name string
	isman bool
}
type Person struct{
	age,height int
	name,city string
}
//实例化-------------------------------------------------------------------------
var ZZ person
var Tjs = new(person)//指针类型结构体
uesr := &person{}//取结构体地址实例化
//使用&对结构体进行取地址操作相当于对该结构体类型进行了一次new实例化操作。
//初始化-------------------------------------------------------------------------
user := person{
	age:18,name:"zz",isman:true
}

user := &person{
age:18,name:"zz",isman:true
}
user :=person{
	age:19
}//当某些字段没有初始值的时候,该字段可以不写

user :=&person{
	18,"xx",true
}
//必须初始化结构体的所有字段。
//初始值的填充顺序必须与字段在结构体中的声明顺序一致。
//该方式不能和键值初始化方式混用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值