1.GO语言切片
①定义切片
可以使用声明未指定大小的数组的方法来定义切片,而切片的定义。而切片的定义往往由make来实现。
其就行定义了一个数组,与数组的区别就是不需要定义大小。 [size]type是数组,[]type是切片
(数组的定义 var arr [size]type,注意在GO语言中[size]type为数据类型,arr为变量名)
var slice1 []type = make([]type, len) //len是前片的初始长度
slice1 := make([]type, len)
②初始化切片
格式1:s := []int {1,2,3,4}
格式2: s := arr[1:4] 用数组来定义切片.
③空切片,长度为0的切片为空切片,其值为nil
④切片截取,
number := []int{1,2,3,4.5.6.7}
number[1:4],包括1,但不包括4的切片
⑤append与copy
var numbers []int //创建一个切片
numbers = append(numbers, 2,3,4) //为切片添加多个元素
copy(numbers1,numbers) //将切片1中的内容拷贝到切片2中
2.GO语言范围
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值。
例如:i为index,而num为value ,k为key,v为value.
for i, num := range nums {
sum += num
}
kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
这里i为字符串的index,而c为其中一个字符。
for i, c := range "go" {
fmt.Println(i, c)
}
3.GO语言MAP(集合)
①定义map
var map_variable map[key_data_type]value_data_type
map_variable := make(map[key_data_type]value_data_type)
注意,map的定义有两个type,一个是key的type,另一个是value的type
例如:var registeredInitializers = make(map[string]func())
这里的key的type为string,而value的type为func()
②delete(countryCapitalMap, "France")
删除map中以"France"为关键字的单元
网友评论