Go语言中的复合类型详细介绍
golang复合类型包括:结构体、数组、切片、Maps。
1、数组
数组
golang中的数组与C语言中的数组差异很大,倒更类似Pascal中的数组。(Slice,下个话题,有些像C语言中的数组)
varar[3]int
声明ar为一个拥有三个整型数的数组,所有元素初始化为0。
大小是类型的一个组成部分。
内置的函数len可以用于获取数组大小:
len(ar)=3
数组是值类型
golang中的数组是值,而非C语言中的隐式指针。你可以获得数组的地址,并生成一个指向数组的指针(例如,将其高效地传递给函数):
funcf(a[3]int){fmt.Println(a)} funcfp(a*[3]int){fmt.Println(a)} funcmain(){ varar[3]int f(ar)//传递一个ar的拷贝 fp(&ar)//传递一个指向ar的指针 }
输出结果:
[000]
&[000]