go语言中数组和切片的区别 本人新手 高手勿喷

we15123 · · 2634 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

首先从定义中来区别 数组的概念就唠叨了 ,格式如下var balance [10] float32 第一个var是赋值符号 balance为数组名称 【10】为数组下表 float32 数组类型为浮点型 以上是数组的基本概念 重点在下面: var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0},【】中不填写数字的形式,go语言中会根据元素的个数来设置数组的大小。或许会认为是动态数组 但是它不是 因为它的数量只是后面的元素来设定,但不是动态的 有什么区别 往下看: 切片的定义:代号(slice) go数组长度不可改变 上面没有数组下表的格式 是根据元素决定数组的大小 是设置 不是改变。而切片不同,与数组相比切片的长度是不固定的,可以追加元素,在追加是可能切片的容量增大,意思也就是说它的大小可以改变 简单的说,就是切片的数量大小可以改变 ,数组不可以 切片的格式定义: var slice1 []type = make([]type, len) 虽然都没有定义数组下表的数值,但是这个数值是可以增加的 因为可以增加数组成员。 上面的格式含义 分词介绍: var 赋值代号 sclice切片定义这个变量可以自己设定, type是指切片的类型 =号左边和右边都是切片的定义格式 只不过是两种形式 还有一种简写就是 slice :=make([]type,len) len是数组的长度也就是初始长度, 这种定义方式是一种简写 就像变量的简写: x :=某值 切片还可以截取和增加 因为这篇文章主要是区别数组和切片的概念 避免混淆

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

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

2634 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传