使用数组
声明数组并给它赋值的程序清单如下:
package main
import(
"fmt"
)
func main(){
var cheeses [2]string
cheeses[0]="Mariolles"
cheeses[1]="Époisses de Bourgogne"
fmt.Println(cheeses[0])
fmt.Println(cheeses[1])
fmt.Println(cheeses)
}
运行结果如下:
Mariolles
Époisses de Bourgogne
[Mariolles Époisses de Bourgogne]
使用切片
切片类似于数组,但不同于数组的是,在切片中可以添加和删除元素,也可以复制切片中的元素。
在切片中添加元素的程序清单如下:
package main
import(
"fmt"
)
func main(){
var cheeses = make([]string,2)
cheeses[0]="Mariolles"
cheeses[1]="Époisses de Bourgogne"
cheeses=append(cheeses,"Camembert")
fmt.Println(cheeses[2])
}
Go语言提供了内置函数append,能增大切片的长度。
运行结果如下:
Camembert
在切片中末尾添加多个元素的程序清单如下:
package main
import(
"fmt"
)
func main(){
var cheeses = make([]string,2)
cheeses[0]="Mariolles"
cheeses[1]="Époisses de Bourgogne"
cheeses=append(cheeses,"Camembert","Reblochon","Picodon")
fmt.Println(cheeses)
}
运行结果如下:
[Mariolles Époisses de Bourgogne Camembert Reblochon Picodon]
在切片中删除元素的程序清单如下:(有bug,没明白。)
package main
import(
"fmt"
)
func main(){
var cheeses = make([]string,2)
cheeses[0]="Mariolles"
cheeses[1]="Époisses de Bourgogne"
cheeses[2]="Camembert"
fmt.Println(len(cheeses))
fmt.Println(cheeses)
cheeses=append(cheeses[:2],cheeses[2+1:]...)
fmt.Println(len(cheeses))
fmt.Println(cheeses)
}
要从切片中删除元素,也可使用内置函数append。
运行结果如下:
panic: runtime error: index out of range [2] with length 2
goroutine 1 [running]:
main.main()
/Users/douxiaobo/go/src/main/main.go:10 +0x70
exit status 2
复制切片中的元素的程序清单如下:
package main
import(
"fmt"
)
func main(){
var cheeses = make([]string,2)
cheeses[0]="Mariolles"
cheeses[1]="Époisses de Bourgogne"
var smellyCheeses=make([]string,2)
copy(smellyCheeses,cheeses)
fmt.Println(smellyCheeses)
}
要复制切片的全部或部分元素,可使用内置函数copy。在复制切片中的元素前,必须再声明一个类型与该切片相同的切片。
运行结果如下:
[Mariolles Époisses de Bourgogne]
使用映射
数组和切片是可通过索引值访问的元素集合,而映射是通过键来访问的无序元素编组。
简单地说,映射可视为键-值对集合。
在映射中添加元素的程序清单如下:
package main
import(
"fmt"
)
func main(){
var players=make(map[string]int)
players["cook"]=32
players["bairstow"]=27
players["stokes"]=26
fmt.Println(players["cook"])
fmt.Println(players["bairstow"])
}
运行结果如下:
32
27
从映射中删除元素的程序清单如下:
package main
import(
"fmt"
)
func main(){
var players=make(map[string]int)
players["cook"]=32
players["bairstow"]=27
players["stokes"]=26
delete(players,"cook")
fmt.Println(players)
}
要从映射中删除元素,可使用内置函数delete。
运行结果如下:
map[bairstow:27 stokes:26]