数组 array
切片 slice
对比一下可以发现,唯一的区别就在于,数组是使用 [5]int{xxx} 来进行初始化,而 slice 是使用 []int{xxx}。
在Go中,我们经常使用slice。slice的特点是,长度是可以改变的,也就是说,我们可以无限追加元素到slice中。其他特点slice与数组并无区别。
map
map是哈希表,Go语言中,声明一个map是这样用:
var x map[string]string
但是注意,上面只是说明x的类型是 map[string]string,但是x的值却是nil。
struct
struct是用来把基本类型组合在一起的,举个例子,我们有个struct叫 Person,我们把名字,年龄组合在一起:
type Person struct {
Name string
age int
}
这样我们就可以代表一个人。不知道你是否注意到了,上面的例子中, Name 是大写的,而 age 是小写的,这有什么区别呢?
在Go语言中,大写开头的变量名是包外可以访问的,而小写的则是不可以的。还记得 fmt.Printf 吗?正是因为 Printf 是大写开头,所以我们 才能调用这个函数,如果是 fmt.printf,那么我们是不可以调用的。