本文主要是介绍Golang 数组与切片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
好的代码会说话,见码
// 数组
// 按值传递的(即是传递的副本,定长
// [length]Type
// [N]Type{value1, value2, ..., valueN}
// [...]Type{value1, value2, ..., valueN}// 切片
// 引用类型,不定长
// 会创建一个隐藏的初始化为零值的数组,返回一个引用该隐藏数组的切片// make([ ]Type, length, capacity)
// make([ ]Type, length)
// [ ]Type{}
// [ ]Type{value1, value2, ..., valueN}package mainimport ("fmt"
)func main() {// 定义go数组,值传递// 省略号语法(go语言自动计算数组长度)a := [...]int{1, 2, 3, 4, 5, 6, 7}fmt.Printf("数组%v 的长度和容量是: %d 和 %d \n", a, len(a), cap(a))fmt.Printf("数组%v 中的项是:", a)// for ... range 迭代数组列表for _, value := range a {fmt.Printf("%d ", value)}fmt.Println()s1 := a[3:6]fmt.Printf("切片%v 的长度和容量是: %d 和 %d \n", s1, len(s1), cap(s1))fmt.Printf("在切片内的项: %v 是:", s1)for _, value := range s1 {fmt.Printf("%d ", value)}fmt.Println()s1[0] = 456fmt.Printf("改变切片后的数组项是:%v", s1)fmt.Println()for _, value := range a {fmt.Printf("% d", value)}fmt.Println()s2 := make([]int, 10, 20)s2[4] = 5fmt.Printf("切片 %v is: %d and %d\n", s2, len(s2), cap(s2))fmt.Printf("在切片 %v 项是:", s2)for _, value := range s2 {fmt.Printf("% d", value)}fmt.Println()}
结果
数组[1 2 3 4 5 6 7] 的长度和容量是: 7 和 7
数组[1 2 3 4 5 6 7] 中的项是:1 2 3 4 5 6 7
切片[4 5 6] 的长度和容量是: 3 和 4
在切片内的项: [4 5 6] 是:4 5 6
改变切片后的数组项是:[456 5 6]1 2 3 456 5 6 7
切片值: [0 0 0 0 5 0 0 0 0 0] is: 10 and 20
在切片 [0 0 0 0 5 0 0 0 0 0] 项是: 0 0 0 0 5 0 0 0 0 0
这篇关于Golang 数组与切片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!