数组array
这里需要注意:
- 数组长度不同,数组的类型也不同,不可赋值(编译时,会报错)
- 数组是值类型,运用时是拷贝,不是传地址;若想传地址:切片
数组赋值合法代码:
package main
import (
"fmt"
)
func main() {
var a [2]int
var b [2]int
b = a
fmt.Println(b)
}
结果:
数组定义:
package main
import (
"fmt"
)
func main() {
var a [2]int
b := [2]int{1, 1}
c := [2]int{1}
d := [20]int{19: 1} //第20个元素为1,其他位置默认为0
e := [...]int{1, 2, 3, 4} //[...]:自动计算有多少个元素
f := [...]int{0: 1, 1: 2, 2: 3} //固定给某个位置赋值
//指向数组的指针
var g *[20]int = &d //结果会有个&,来区分
z := new([10]int)
//指针数组
x, y := 1, 2
h := [...]*int{&x, &y}
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
fmt.Println(e)
fmt.Println(f)
fmt.Println(g)
fmt.Println(z)
fmt.Println(h)
}
结果:
比较数组(只可以:==,!=)
相同类型数组,才可以比较(别忘了长度也可以区别类型)
package main
import (
"fmt"
)
func main() {
a := [2]int{1,2}
b := [2]int{1,2}
c := [2]int{1,3}
fmt.Println(a == b)
fmt.Println(a == c)
}
结果:
多元数组
package main
import (
"fmt"
)
func main() {
a := [2][3]int{
{1, 1, 1}, //","不要忘记了
{2, 2, 2}} //这里的大括号要放在一起
fmt.Println(a)
b := [2][3]int{
{1: 1}, //","不要忘记了
{2: 2}} //这里的大括号要放在一起
fmt.Println(b)
c := [...][3]int{ //行可以用点表示,列不可
{1: 1}, //","不要忘记了
{2: 2}} //这里的大括号要放在一起
fmt.Println(c)
}
结果:
冒泡排序
package main
import (
"fmt"
)
func main() {
a := [...]int{5, 2, 3, 4, 3, 9}
fmt.Println(a)
num := len(a)
temp := 0
for i := 0; i < num; i++ {
for j := 0; j < num; j++ {
if a[i]<a[j] {
temp = a[i]
a[i] = a[j]
a[j] = temp
}
}
}
fmt.Println(a)
}
结果: