——————
引用类型(reference type)特指slice、map、channel这三种鱼定义类型
引用类型拥有复杂的存储结构。包括分配内存,初始化属性:指针、长度、哈希分布、数据队列等。使用make函数创建
func mkslice() []int {
s := make([]int, 0, 10)
s = append(s, 100)
return s
}
func mkmap() map[string]int {
m := make(map[string]int)
m["a"] = 1
return m
}
func main() {
m := mkmap()
println(m["a"])
s := mkslice()
println(s[0])
}
输出
—————— new函数也可以为引用类型分配内存,但不是完整创建,没有分配键值存储内存、初始化散列桶等内部属性,无法正常工作
func main() {
p := new(map[string]int) #函数new返回指针
m := *p
m["a"] = 1 #panic:assignment to entry in nil map(运行期错误)
fmt.Println(m)
}
——————
go引用类型
猜你喜欢
转载自blog.csdn.net/Haka36/article/details/87915815
今日推荐
周排行