golang的array/slice
相同点
- 由相同类型的元素组合构成
- 元素有序排列,0为第一个元素下标
- 基本使用方法相同
区别
array声明时需要指定容量大小,而且无法修改
slice可通过append增加元素,当容量不够时,会自动扩容
array传递类型:值拷贝;slice传递类型:引用拷贝(有两种情况坑)
声明
- var array名 [容量]元素类型
- array名 :=[3]元素类型{元素1,元素2,元素3}
- var slice名 []元素类型
- slice名 := make([]类型,容量) //建议这样声明
- slice名 := []元素类型{元素1,元素2,元素3}
- // array或者slice声明后,各元素并不为空,而是该元素类型的 *零 *值
- //array声明时还可以让编译器自动导入元素容量
- array名 := [10]int{5:199, 8:200}
- //多维array/slice
- //由相同元素类型构成的array/slice 为元素构成的array结构
- array名 := [3][2]int{{1,2},{3,5},{9,2}}
- slice名 := [][]int{{1,2},{3,5},{9,2}}
- //元素赋值
- a[index] = 值
array/slice容量属性len/cap
- len
- len()方法获取array/slice的元素个数
- cap
- cap()方法获取array/slice的最大值可存储元素个数
根据开始我们说的array和slice特性
array: len和cap值时相等的
slice:初始化时,len和cap值是相等的,当append操作达到当前cap临界点时,cap值会增大
此时,len与cap的值是不相等的
array/slice遍历
- 方法一
- for index, value := rang a{
- fmt.Println(index, value)
- }
- for index, value := rang a{
- 方法二
- for index := range a{
- fmt.Println(a[index])
- }
- for index := range a{
- 方法三
- //len()获取array元素数量
- for i :=0; i<len(a); i++{
- fmt.Println(a[i])
- }
- //len()获取array元素数量
- 多维遍历
- b := [3][2]int{{1,2},{3,5},{9,2}}
- for index, value := range b{
- for i, v := range value{
- fmt.Println(index, i. v)
- }
- }
- b := [3][2]int{{1,2},{3,5},{9,2}}
- 切片操作
- a := [5]int{10, 20, 30, 40, 50}
- //取出前三个元素, 坐标分别是 0, 1, 2
- b := a[0:3]
- bb := a[:3]
- //取出第三个元素之后所有元素(包含第3个元素)
- c := a[2:]
- //取出第2, 3, 4 三个元素
- d := a[1:4]
- s1 := []int{1, 2}
- s2 := s1
- fmt.Println(s1[0])
- fmt.Println(s2[0])
- s1[0] = 100
- fmt.Println(s1[0])
- fmt.Println(s2[0])
- temp := []int{5, 6, 7, 8, 9, 10, 11, 12, 13, 14}
- s1 = append(s1, temp...)
- s1[0] = 1000
- fmt.Println(s1[0])
- fmt.Println(s2[0])
golang的array/slice的更多相关文章
- golang array, slice, string笔记
本来想写一篇关于golang io的笔记,但是在学习io之前必须了解array, slice, string概念,因此将在下篇写golang io. array: 数组的长度是该数组类型的一部分, ...
- golang之array
golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]i ...
- golang笔记——array
1.定义一个 array 数组长度也是类型的一部分,比如长度为3的int数组与长度为5的int数组,并不是同一类型. package main import ( "strconv" ...
- JS之Array.slice()方法
1.Array.slice(startIndex,endIndex); 返回由原始数组从startIndex到endIndex-1的元素构成的新数组; startIndex:默认值0,如果startI ...
- javascript:Array.slice.call 到Array.prototype.slice.call
举个从对象到数组的例子: var obj={}; obj[1]=1; obj[2]=2; obj.length=2; var arr =Array.prototype.slice.call(obj); ...
- [js] Array.slice和类数组转数组
a.call(b) 相当于把a方法放到b的原型上(实例私有方法)执行 Array.slice的用途 https://juejin.im/post/5b20b8596fb9a01e8d6a47c0 用法 ...
- Array.slice(start,end)的用法
start在start>=0,假设start=0,表示从数组的第一个元素开始截取,start=2,表示从数组的第二个元素开始截取,依次类推. 在start<0时,start=-1表示从倒数 ...
- JS - Array.slice 与 Array.splice
1)Array.slice方法 1.1)接收两个参数: a:起始下标 b:结束下标 1.2)返回由a(包括)至b(不包括)的元素所组成的数组 ...
- golang中Array与Slice
在golang中有数组和Slice两种数据结构,Slice是基于数组的实现,是长度动态不固定的数据结构,本质上是一个对数组字序列的引用,提供了对数组的轻量级访问.那么在go的函数中以数组或Slice为 ...
随机推荐
- BZOJ2330 SCOI2011 糖果 【差分约束】
BZOJ2330 SCOI2011 糖果 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一 ...
- qt creator在Qt5中中文显示的问题
当我们用Qt Creater时,经常出会出现如下问题: 处理方法如下:用记事本打开你的源代码,然后点另存为,utf-8,编码覆盖,这时中文就没问题了但是会乱码.在字符串前加个宏QStringLiter ...
- 1153 Decode Registration Card of PAT (25 分)
A registration card number of PAT consists of 4 parts: the 1st letter represents the test level, nam ...
- 【angularJS】Service服务
AngularJS 中的服务是一个函数或对象.可以创建自己的服务,或使用内建服务. 内置服务 AngularJS 内建了30 多个服务. 1. $location 服务,它可以返回当前页面的 URL ...
- oracle11g安装(win10)
oracle11g安装(win10) 0.安装环境 1.安装包下载 1)http://www.oracle.com/technetwork/database/enterprise-edition/do ...
- Nexus搭建私服
什么是Nexus Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问. 运行原理 本地仓库与私服处在同一个局域网中,当本地仓库没有资源时,会向私服发起请求获取 ...
- k-means算法Java一维实现
这里的程序稍微有点变形.k_means方法返回K-means聚类的若干中心点.代码: import java.util.ArrayList; import java.util.Collections; ...
- RK3288 增加双屏异显 eDP+LVDS
CPU:RK3288 系统:Android 5.1 下面是官方文档中的信息. 1.rk3288 支持的显示接口可以任意组合. 2.双屏异显时,一个显示接口当主屏,另一个当副屏:主副屏由板级 dts 文 ...
- sql语句查询重复数据
select id, name, memofrom Awhere id in (select id from A group by id having count(1) >= 2)
- String与StringBuffer效率的比较
String str = “”; for (int i=0; i<100; i++) str += “a”; 可是你知道在内存中会产生多少的垃圾出来吗?总共会有a.aa.aaa. aaa….,无 ...