Golang基础_03-数组Array
Posted leafs99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang基础_03-数组Array相关的知识,希望对你有一定的参考价值。
目录
@
注意事项
- 数组在Go中是值类型,不是引用
- 类型和长度都相同的数组之间可以使用==或者!=进行比较(Go中已经实现了),但是没有<或者>
Go支持多维数组
数组定义
Tips
- 两个数组不能直接赋值
- 数组定义格式:
var <Varname> [n]<type>, n>=0
- 数组长度也是类型的一部分,因此不同长度数组为不同的类型
可以用索引初始化下标为n的位置的值
Examples
func main()
var a [20]int
a = [20]int19:1 //索引
b := [3]string
c := [...]int0:1, 1:2, 2:3
fmt.Println(a,b,c)
指向数组的指针和指针数组
Examples
func main()
var a [20]int
a = [20]int19:1
var p *[20]int = &a
fmt.Println(*p)
func main()
x,y := 1,2
var pp [20]*int = [20]*int&x, &y
fmt.Println(pp)
Tips
- 可以用new创建数组,此方法返回一个指向数组的指针
- 不管是数组本身还是指向数组的指针,都可以用中括号的方式改变数组的值
func main()
a := [10]int
a[1]=3
fmt.Println(a)
p := new([10]int)
p[1]=3
fmt.Println(p)
/*
command-line-arguments
[0 3 0 0 0 0 0 0 0 0]
&[0 3 0 0 0 0 0 0 0 0]
*/
多维数组
- 多维数组也可以使用索引
- 二维数组的第一个参数用[...]可以省略,但是第二个不可以
func main()
a := [2][3]int
1,2,3,
4,5,6
fmt.Println(a)
/*
> Output:
[[1 2 3] [4 5 6]]
*/
下面的代码会报错:
func main()
a := [2][3]int
1,2,3,
4,5,6
fmt.Println(a)
//注意数组右大括号的位置
冒泡排序例子
func main()
a := [...]int1,3,4,6,8,2,10,45,34,9,8
fmt.Println(a)
fmt.Println("从小到大排序")
num := len(a)
for i := 0; i < num; i++
for j := i+1; j<num; j++
if a[i]>a[j]
temp := a[i]
a[i] = a[j]
a[j] = temp
fmt.Println(a)
/*
> Output:
command-line-arguments
[1 3 4 6 8 2 10 45 34 9 8]
从小到大排序
[1 2 3 4 6 8 8 9 10 34 45]
*/
以上是关于Golang基础_03-数组Array的主要内容,如果未能解决你的问题,请参考以下文章