golang(2)
发布时间:2020-12-16 18:51:27 所属栏目:大数据 来源:网络整理
导读:五, Array 与 slice 数组是固定长度的,slice是长度可以变的。但是slice是寄生在array上的。 数组的赋值为有以下几种写法,但是无论那种,右边的长度在编译时都是已知的。左边则是明确写出,或者由编译器自动识别; var b[2]int=[2]int{11,12} //此时b是固
五, Array 与 slice数组是固定长度的,slice是长度可以变的。但是slice是寄生在array上的。数组的赋值为有以下几种写法,但是无论那种,右边的长度在编译时都是已知的。左边则是明确写出,或者由编译器自动识别; var b[2]int=[2]int{11,12} //此时b是固定长度位2的数组。 var c[2]int=[...]int{11,12} //同上。 var d=[...]int{1,2,3,4} e:= [...]int{1,4} slice是寄生于array的;其写法为: var s=d[1:2],//表示s是从第一个元素开始,第二个元素结束(不包括2) var s1=d[:],//表示s1是d的全部 var s2=d[:2],//表示s2是0开始,2结束 var s3=d[1:],//表示从1开始到最后 一不小心突然发现有了一个新写法 var a []int = [] int{1,2};以为发现了一种新的数组赋值方法。这里的a实际是slice;此时这个数组是匿名的了。 下面的代码输出位: [1/2]0x7f71d56d5f4c &a=0x7f71d56d5f48 a=1 2 4 [1/1]0x7f71d56d5f54 点击(此处)折叠或打开
六,len注意点:len(string)返回的是该字符串所占用的字节数,而不是字符的个数。 由于都是utf-8,中文字符的长度超过了2, 所以总结果是13;点击(此处)折叠或打开
所以,只有array的长度是直接由编译器得到,而slice,和string的长度则是有变量记录的; 七, 指针在golang中是有指针的,这一点给程序员带来了很大的方便,java没有提供求地址的功能,很是不便;比如下面的modify函数,如果在java中如果需要得到一个新的string值,只能通过返回值返回了。如果此时又有需求返回一个其他的返回值,就没有办法了;点击(此处)折叠或打开
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |