Golang学习笔记4:Golang基础下
s
array就是数组:
var arr [n]type
数组也可以使用另一种简短声明符号:= 来声明
slice—-Go的动态数组
var fslice []int声明方式:
var y []int(中括号里面不填数字大小,因为是动态的)
还可以通过从一个数组或一个已经存在的slice中再次声明
x := [10]int{1, 2, 3, 4, 5, 6, 7, 8 ,9 ,10} y := x[1:3] fmt.Print(y)前闭后开,包含2但不包含4.
结果如下:
[2 3] 进程 已完成,退出代码为 0slice 也可以使用
:=来声明
s := make([]int , 10 , 20)//长度是10 ,真正容量是20
make关键字用来分配空间
len 是长度 cap 是容量
第一个例子
package main
import (
"fmt"
)
func main(){
y := make([]int,3,5) //5相当于参考容量
y = append(y,5,6,7) //append函数向动态数组中添加
fmt.Print(y,cap(y)) //容量cap()
}
添加至数组长度大于容量,也没关系,go底层会自动扩宽空间
运行结果:
[0 0 0 5 6 7] 10
进程 已完成,退出代码为 0
第二个例子
package main
import (
"fmt"
)
func main(){
var slice []int
slice = append(slice,1,2,3)
fmt.Print(slice)
}
运行结果:
[1 2 3]
进程 已完成,退出代码为 0
map
声明
map[keyType]valueType
student:= make(map[string]int) map使用必须make 一下分配内存
package main
import (
"fmt"
)
func main(){
var student map[string]float32
student = make(map[string]float32)
student["yesai"] = 18.2
fmt.Print(student)
}
运行结果
map[yesai:18.2]
进程 已完成,退出代码为 0
也可以使用简短声明符号,声明的两行改为
student := make(map[string]float32)
make用于内建类型(map,slice和channel)的内存分配
map无法和slice一样自动内存扩充
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 赛 の 任意门!
评论
ValineGitalk





