美文网首页
Golang learning 数组 切片(slice)

Golang learning 数组 切片(slice)

作者: wangyongyue | 来源:发表于2019-05-13 18:34 被阅读0次

数组 切片(slice)
数组是值类型,切片是引用类型,虽然很像,但是本质不同。使用时注意不要用错

var a [2]int                         数组初始化没有赋值,打印结果 [] 空值,不为nil
fmt.Print(a)


a := [2]int{1,2}                    数组初始化赋值
fmt.Print(a)
a := [2]int{1,2}                   数组初始化赋值,指定数组个数
fmt.Print(a)

a := [4]int{1,2:3}                  数组指定下标位置初始化,未指定下标值默认0(type []int),打印结果[1 0 3]
fmt.Print(a)

a := [...]int{1,2}                 编译器会按照数量确定数组长度
fmt.Print(len(a))

type Person struct {         struct 类
    name string
    age   int
}
a := [...]Person{                初始化Person类型数组,对于多维度数组只允许第一维度[...]
    {"w",12},
    {"y", 16},
}
fmt.Print(a)


数组判断  == 
a := [...]Person{
        {"w",12},
        {"y", 16},
    }

    b := [...]Person{
        {"w",12},
        {"y", 16},
    }

    fmt.Print(a == b)             打印true
    print("\n",&a,"\n",&b)       打印0xc00007aee8    0xc00007aeb8  地址不同

    c := [2]int{1,2}
    d := [2]int{1,2}
    fmt.Print(c == d)             打印true
    print("\n",&c,"\n",&d)        打印0xc00007ae68    0xc00007ae58  地址不同
                                                 == 可判定数据一致性,地址不同无法用于判定对象是否是同一个

切片


var a []int                         切片初始化没有赋值,打印结果 [] 空值,为nil,地址0x0
fmt.Print(a)


a := []int{1,2}                    切片的初始化赋值不等于nil ,分配了内存
fmt.Print(a)

a := make([]int,0,5)           切片的初始化赋值不等于nil,分配了内存, 0 大小, 5 长度
fmt.Print(a)

a := [][]int{                        如果元素类也是切片,那就可以实现类似交错数组的功能
        {1,2},
        {10,20,30},
        {100},
    }
 a[2] = append(a[2],200,300)
 fmt.Print(a)
 fmt.Print(a[:1])                 从头到指定索引

a := make([]int,0,5)        向切片末尾添加元素,添加元素超过5个会重新分配内存
append(b,2)

相关文章

  • Golang learning 数组 切片(slice)

    数组 切片(slice)数组是值类型,切片是引用类型,虽然很像,但是本质不同。使用时注意不要用错 切片

  • Learn Golang in 21 Days - Day 10

    Learn Golang in 21 Days - Day 10 知识点 切片Slice Slice是对数组的抽象...

  • Golang 中的数组 (array) 和切片 (slice)

    huangwenwei - 字里行间 | Golang 中的数组 (array) 和切片 (slice) 中文描述...

  • golang-slice

    最近在使用golang进行开发,使用slice的时候遇到了一些坑 slice:用来弥补数组的不足,称之为数组切片 ...

  • Golang 数组 切片

    Golang 数组和切片 go提供了相应数据类型来存储多个相同类型的元素。它们分别是数组和slice切片。其中,切...

  • Golang之数组和切片

    引用 数组、字符串和切片 Go数组中的索引问题 深入解析 Go 中 Slice 底层实现 Golang 入门 : ...

  • go 数组和切片slice那些事儿

    目录 数组数组概念数组的初始化 切片slice概念slice创建slice追加slice拼接问题slice作为函数...

  • golang核心编程

    golang核心笔记 Go的编译命令 变量 slice切片:是对数组一个连续片段的引用,是一种引用类型 切片提供了...

  • Go-Slice

    golang 切片(Slice) 切片为引用类型,切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基...

  • 《Go语言四十二章经》第十二章 切片(slice)

    作者:李骁 12.1 切片(slice) 切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,...

网友评论

      本文标题:Golang learning 数组 切片(slice)

      本文链接:https://www.haomeiwen.com/subject/ezjraqtx.html