IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    go笔记2

    Moxuy发表于 2023-10-12 14:33:32
    love 0

    指针

    指针保存了值的内存地址。

    类型 *T 是指向 T 类型值的指针。其零值为 nil。

    & 操作符会生成一个指向其操作数的指针。

    * 操作符表示指针指向的底层值。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    func main() {
    i, j := 42, 2701

    p := &i // 指向 i
    fmt.Println(*p) // 通过指针读取 i 的值
    *p = 21 // 通过指针设置 i 的值
    fmt.Println(i) // 查看 i 的值

    p = &j // 指向 j
    *p = *p / 37 // 通过指针对 j 进行除法运算
    fmt.Println(j) // 查看 j 的值
    }

    结构体

    1
    2
    3
    4
    5
    6
    7
    8
    type Vertex struct {
    X int
    Y int
    }
    func main() {
    v := Vertex{1, 2}
    v.X = 4
    }

    数组

    数组切片并不存储任何数据,它只是描述了底层数组中的一段。修改了切片的值就相当于修改了原数组。

    切片拥有 长度 和 容量

    len 和 cap 函数的区别是
    - len 输出当前数组所包含的元素个数
    - cap 输出从当前数组的第一个元素开始数,到其底层数组元素末尾的个数

    1
    2
    3
    4
    5
    6
    7
    func main() {
    var slice1 []int = make([]int, 10)
    var slice2 = slice1[:5]
    fmt.Println(slice1)
    fmt.Println(len(slice2)) // output: 5
    fmt.Println(cap(slice2)) // output: 10
    }


沪ICP备19023445号-2号
友情链接