电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

61396-Go语言程序设计项目化教程(微课版)2.2 复合数据类型VIP免费

61396-Go语言程序设计项目化教程(微课版)2.2 复合数据类型_第1页
61396-Go语言程序设计项目化教程(微课版)2.2 复合数据类型_第2页
61396-Go语言程序设计项目化教程(微课版)2.2 复合数据类型_第3页
复合数据类型数组map映射切片01.03.02.目录01数组•数组定义•数组声明•拷贝数组•数组元素修改1数组一个由固定长度的特定类型元素组成的序列varvariable_name[size]type数组定义标准格式声明数组vara[3]int//声明一个数组名为a、类型为int、大小为3的数组a[0]=12//为第一个元素填充数据a[1]=78//为第二个元素填充数据a[2]=50//为第三个元素填充数据a:=[3]int{12,78,50}//定义且声明数组内容a:=[3]int{12}//可以只填充部分数据varvariable_name=[size]type{value,……}初始化数组a:=[...]int{12,78,50}//编译器自行推断vara=[3]int{12,78,50}//定义且声明数组内容varvariable_name=[...]type{value,……}自行推断数组大小a:=[3]int{1:78,2:50}//填充指定位置1数组•数组的每个元素可以通过索引下标来访问•索引下标的范围从0开始到数据长度减1结束•数组无法灵活扩容:在定义数组元素数量后,赋值元素变量个数必须要小于或者等于预设置的元素数量•type指任意的基本类型,也可以是数组本身,实现多维数组•在Go语言中数组是值类型而不是引用类型•这意味着当数组变量被赋值时,将会获得原数组的拷贝,新数组中元素的改变不会影响原数组中元素的值数组特点packagemainimport"fmt"funcmain(){a:=[...]int{12,78,50}b:=a//将a数组复制给b数组b[0]=60fmt.Println(a)fmt.Println(b)}1数组•在Go中数组是值类型而不是引用类型。•当数组变量被赋值时:将会获得原数组的拷贝。•新数组中元素的改变不会影响原数组中元素的值。运行结果为:[127850][607850]packagemainimport"fmt"funcmain(){vara[1]string//定义一个1个元素的string类型数组,string默认值为空varb=[2]string{“a”,“b”}//定义一个2个元素的string类型数组c:=[3]string{"a","b","c"}//定义并初始化一个3个空间的string类型数组d:=[...]string{"a","b","c","d"}//自动推到元素个数e:=d//拷贝数组e[0]="e"//修改数组指定位置的值fmt.Println(a,len(a))//打印a数组、a数组长度fmt.Println(b)fmt.Println(c)fmt.Println(d,len(d))fmt.Println(e,len(e))}1数组运行结果为:[]1[ab][abc][abcd]4[ebcd]402切片•切片声明•基于数组创建切片•使用make()函数构造切片•使用append()为切片动态添加元素•使用copy()复制新的切片•数组与切片相互转换2切片动态数组:切片可以按需自动扩充和缩减数组:长度固定现实中会面临:往数组内增加>len(数组名)个元素varname[]type=[]type{……}切片声明•[]中不需要指定长度,即:长度是不固定的•可以追加元素,在追加时可能使切片的容量增大,可以从数据中生成新的切片或者是声明新的切片。切片特点packagemainimport"fmt"funcmain(){vara[]int=[]int{10,11,12,13}fmt.Println(a,len(a))}运行结果为:[10111213]42切片varname[]type=数组名[开始位置:结束位置]基于数组创建切片特点•结束位置的元素不取•切片数量=结束位置下标-开始位置下标•当缺省开始位置时,表示从连续的区域开头到结束位置•当缺省结束位置时,表示从开始位置到整个连续区域末尾•两者同时缺省时,与数组本身等效•两者同时为0时,等于空切片,一般用于切片复位packagemainimport"fmt"funcmain(){a:=[5]string{"A","B","C","D"}varb[]string=a[1:2]fmt.Println(a)fmt.Println(b,len(b))}运行结果为:[ABCD][B]1packagemainimport"fmt"funcmain(){a:=[5]int{76,77,78,79,80}varb[]int=a[1:3]//取a数组的第1到第3个元素varc[]int=a[:3]//取a数组的第0到第3个元素vard[]int=a[1:]//取a数组的第1到最后一个元素vare[]int=a[:]//取a数组的第0到最后一个元素varf[]int=a[0:0]//空切片fmt.Println(a,len(a))fmt.Println(b,len(b))fmt.Println(c,len(c))fmt.Println(d,len(d))fmt.Println(e,len(e))fmt.Println(f,len(f))}运行结果为:[7677787980]5[7778]2[767778]3[77787980]4[7677787980]5[]02切片packagemainimport"fmt"funcmain(){a:=[5]string{"A","B","C","D","E"}varb[]string=a[1:3]fmt.Println("修改前的a数组:",a)fmt.Println("修改前的b切片:",b)b[1]="2"fmt.Println("修改后的a数组:",a)fmt.Println("修...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

最好的沉淀+ 关注
实名认证
内容提供者

行业文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部