分享
  1. 首页
  2. 文章

Golang learning 数组 切片(slice)

wangyongyue · · 1188 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

数组 切片(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)

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:wangyongyue

查看原文:Golang learning 数组 切片(slice)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1188 次点击
1 回复 | 直到 2025年05月15日 08:34:09
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏