首先來看一下如何聲明數(shù)組:
package main
import "fmt"
var arr [2]int //申明一個(gè)數(shù)組
func main() {
arr[0] = 1 //數(shù)組賦值
fmt.Println(arr)
arrtest := [3]int{1, 2, 3} //數(shù)組的另一種申明方式
fmt.Println(arrtest)
a := [...]int{1, 2} //[...]自動(dòng)識別數(shù)組的長度
fmt.Println(a)
fmt.Println(len(a))//輸出數(shù)組的長度
}
go語言可以自動(dòng)計(jì)算數(shù)組的長度,譬如你知道數(shù)組有幾個(gè)可以如下申明
a:=[...]int{1,2,3,45}
指針數(shù)組
a:=[3]int{1,2,3}
var p * [3]int = &a //這種是指針數(shù)組 我們看到可以直接輸出指向數(shù)組的指針
x , y :=1 ,3
a := [...]*int{&x ,&y}
str.Println(a) //輸出這樣[0xc080000068 0xc080000070]的地址 這就是數(shù)組指針
可以用new關(guān)鍵字申明
p := new([10]int)
fmt.Println(p) //&[0 0 0 0 0 0 0 0 0 0] 輸出一個(gè)指針
多維數(shù)組跟其他語言一樣
c := [3][2]int{{1: 2}, {2, 1}, {2, 2}}
fmt.Println(c) //輸出[[0 2] [2 1] [2 2]]
下邊是slice的申明和使用其實(shí)這就是一種動(dòng)態(tài)的數(shù)組
package main
import "fmt"
var arr [2]int //申明一個(gè)數(shù)組
func main() {
arr[0] = 1 //數(shù)組賦值
fmt.Println(arr)
arrtest := [3]int{1, 2, 3} //數(shù)組的另一種申明方式
fmt.Println(arrtest)
a := [...]int{1, 2} //[...]自動(dòng)識別數(shù)組的長度
fmt.Println(a)
fmt.Println(len(a))//輸出數(shù)組的長度
}
來看一下冒泡算法之go語言版
package main
import "fmt"
func main() {
a := [...]int{3, 2, 5, 8, 6}
fmt.Println(a)
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)
}