var arrayName [N]type
var names [3]string
package mainimport ("fmt""reflect"
)func main() {var names [3]stringfmt.Printf("变量 names 类型为:%q\n打印结果:%+v\n长度为:%d",reflect.TypeOf(names),names,len(names))
}
结果
变量 names 类型为:"[3]string"
打印结果:[ ]
长度为:3
var arrayName = [N]type{valu1,valu2,valu3……}
在函数中可以写做
arrayName := [N]type{valu1,valu2,valu3……}
names := [3]string{"刘备","关羽","张飞"}
可以写做
var names [3]string
names = [3]string{"刘备","关羽","张飞"}
也可以写做:
var names [3]string
names = [...]string{"刘备","关羽","张飞"}
但是成员数和定义的长度一定要一致,否则报错。
package main
import "fmt"func main() {names := [3]string{"刘备","关羽","张飞"}fmt.Printf("数组为:%+v\n长度为:%d\n",names,len(names))
}
数组为:[刘备 关羽 张飞]
长度为:3
如下,我们赋值时给长度为3的数组传入两个元素,则第三个元素仍为默认值(int 默认值为0)
package main
import "fmt"func main() {arrayInt := [3]int{66,166}fmt.Printf("数组为:%+v\n长度为:%d\n",arrayInt,len(arrayInt))
}
数组为:[66 166 0]
长度为:3
arrayName[N] = valueN
names[0] = "刘备"
package mainimport "fmt"func main() {var names [3]stringfmt.Printf("=================\n数组为:%+v\n长度为:%d\n",names,len(names))names[0] = "刘备"fmt.Printf("=================\n数组为:%+v\n长度为:%d\n",names,len(names))names[2] = "张飞"fmt.Printf("=================\n数组为:%+v\n长度为:%d\n",names,len(names))
}
=================
数组为:[ ]
长度为:3
=================
数组为:[刘备 ]
长度为:3
=================
数组为:[刘备 张飞]
长度为:3
package mainimport "fmt"func main() {names := [3]string{"刘备","关羽","张飞"}fmt.Println(names[0])
}
刘备
package mainimport "fmt"func main() {names := [3]string{"刘备","关羽","张飞"}for num,name := range names{fmt.Printf("第%d个元素是: %q\n",num,name)}
}
第0个元素是: "刘备"
第1个元素是: "关羽"
第2个元素是: "张飞"
数组直接等于一个长度相等的数组,则全部值都改变。(长度不相等的数组会报错)
package main
import "fmt"func main() {names := [3]string{"刘备","关羽","张飞"}fmt.Printf("原数组为:%+v\n",names)names = [3]string{"孙权","周瑜","黄盖"}fmt.Printf("修改后数组为:%+v\n",names)
}
原数组为:[刘备 关羽 张飞]
修改后数组为:[孙权 周瑜 黄盖]
package main
import "fmt"func main() {names := [3]string{"刘备","关羽","张飞"}fmt.Printf("原数组:%+v\n",names)names[0]="刘玄德"fmt.Printf("修改后:%+v\n",names)}
原数组:[刘备 关羽 张飞]
修改后:[刘玄德 关羽 张飞]
没有示例,怎么改都会报错
上一篇:CPP 核心编程8-模板