码迷,mamicode.com
首页 > 编程语言 > 详细

go-数组-切片-字典

时间:2019-02-19 01:03:36      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:length   表示   位置   不能   括号   它的   函数   容量   一个   

 

声明一个数组变量的同时为该变量赋值。
var numbers = [3]int{1, 2, 3}

另一种便捷方法, 类型字面量中省略代表其长度的数字
var numbers = [...]int{1, 2, 3}

 

对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度。
索引值的最小有效值从0开始。

 

len是Go语言的内建函数的名称。
该函数用于获取字符串、数组、切片、字典或通道类型的值的长度。
var length = len(numbers)

 

如果我们只声明一个数组类型的变量而不为它赋值,那么该变量的值将会是指定长度的、其中各元素均为元素类型的零值(或称默认值)的数组值。
var numbers2 [5]int;  则它的值会是[5]int{0, 0, 0, 0, 0}

 

 切片

var numbers3 = [5]int{1, 2, 3, 4, 5}
var slice1 = numbers3[1:4]
切片表达式一般由字符串、数组或切片的值以及由方括号包裹且由英文冒号“:”分隔的两个正整数组成。
这两个正整数分别表示 [ 元素下界索引 : 元素上界索引 ]。
切片表达式numbers3[1:4]的求值结果为[]int{2, 3, 4}。

 

切片的更多操作方法
numbers3[1:4:4] 
这第三个正整数被称为容量上界索引。
它的意义在于可以把作为结果的切片值的容量设置得更小。

 

 

append会对切片值进行扩展并返回一个新的切片值。
slice1 = append(slice1, 6, 7)
slice1的值变为了[]int{2, 3, 4, 6, 7}

 

切片方法--复制
该操作的实施方法是调用copy函数。该函数接受两个类型相同的切片值作为参数,
并会把第二个参数值中的元素复制到第一个参数值中的相应位置(索引值相同)上。
 这种复制遵循最小复制原则,即:被复制的元素的个数总是等于长度较短的那个参数值的长度
var slice4 = []int{0, 0, 0, 0, 0, 0, 0}
copy(slice4, slice1)   
通过上述复制操作,slice4会变为[]int{2, 3, 4, 6, 7, 0, 0}

 

 字典
字典类型的字面量如下:
map[K]T    
其中,“K”意为键的类型,而“T”则代表元素(或称值)的类型
字典的键类型必须是可比较的,否则会引起错误。也就是说,它不能是切片、字典或函数类型。
map[int]string{1: "a", 2: "b", 3: "c"}

 

赋值给一个变量:
mm := map[int]string{1: "a", 2: "b", 3: "c"} 

 

 运用索引表达式取出字典中的值
b :
= mm[2]

 

对于字典值来说,如果其中不存在索引表达式欲取出的键值对, 那么就以它的值类型的空值(或称默认值)作为该索引表达式的求值结果

 

针对字典的索引表达式可以有两个求值结果。
第二个求值结果是bool类型的。
它用于表明字典值中是否存在指定的键值对。

 

从字典中删除键值对,调用内建函数delete
delete(mm, 4)   
无论mm中是否存在以4为键的键值对,delete都会“无声”地执行完毕。
有则删除,无则不做。

 

与切片类型相同,字典类型属于引用类型。它的零值即为nil。

 

 

 

 

 

 

 

 

go-数组-切片-字典

标签:length   表示   位置   不能   括号   它的   函数   容量   一个   

原文地址:https://www.cnblogs.com/osbreak/p/10398452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!