学习《GO语言学习笔记》的学习笔记之2.5 引用类型(详解)

版权声明:诸葛老刘所有 https://blog.csdn.net/weixin_39791387/article/details/87289608

本文适合初学者阅读

  • 所谓引用类型(referece type) 特指slice, map, channel 这三种预定义类型.
  • 相比数字, 数组等类型, 引用类型拥有更复杂的存储结构. 除分配内存外, 它们还须初始化一系列属性, 诸如指针, 长度, 甚至包括哈希分布, 数据队列等.
  • 内置函数 new 按指定类型长度分配零值内存, 返回指针, 并不关心类型内部构造和初始化方式, 而引用类型则必须使用make函数创建, 编译器会将make转换为目标类型专用的创建函数, 以确保完成全部内存分配和相关属性的初始化.
package main

// import (
//     ""
// )

func mkslice() []int {
    s := make([]int, 0, 10)    // 预定义一个类似于python的list, 长度为10
    s = append(s, 100)         // 添加一个元素 10
    return s
}

func mkmap() map[string]int {
    m := make(map[string]int)   // 预定义一个类似python的字典, 初始化键为string, 值为int
    m["a"] = 1                  // 添加一个键值对
    return m
}

func main() {
    m := mkmap()
    println(m["a"])  // 输出结果为1

    s := mkslice()
    println(s[0])  // 输出结果为:100
}

end

猜你喜欢

转载自blog.csdn.net/weixin_39791387/article/details/87289608