4种定义数组的方式
var arr1 [3]int = [3]int{1, 2, 3}
fmt.Printf("arr1类型:%T,值:%v\n", arr1, arr1)
var arr2 = [3]int{4, 5, 6}
fmt.Printf("arr2类型:%T,值:%v\n", arr2, arr2)
var arr3 = [...]string{"tom", "jack", "lily"} // 或者[]string{"tom", "jack", "lily"}
fmt.Printf("arr3类型:%T,值:%v\n", arr3, arr3)
// 自定义下标
arr4 := [...]float64{2: 23.22, 1: 11.11, 0: 4.3}
fmt.Printf("arr4类型:%T,值:%v\n", arr4, arr4)
数组的遍历
for index,value := range array {
}
函数指针修改数组元素的值
package main
import "fmt"
func test(arr *[3](int)) {
(*arr)[1] = 88
}
func main() {
arr := [...](int){11, 22, 33}
test(&arr) // 实参传入引用地址
fmt.Printf("arr type=%T, value=%v", arr, arr)
}
冒泡排序
package main
import "fmt"
func main() {
var arr = [...]int{11, 22, 55, 33, 88, 9}
maxValue := 11
maxIndex := 0
for i := 1; i < len(arr); i++ {
if maxValue < arr[i] {
maxValue = arr[i]
maxIndex = i
}
}
fmt.Printf("maxValue=%v, maxIndex=%v\n", maxValue, maxIndex)
}
二维数组定义及遍历
package main
import "fmt"
func main() {
// 定义二维数组
var arr = [2][3]int{{1, 2, 3}, {4, 5, 6}}
// for 循环
for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr[i]); j++ {
fmt.Printf("arr[%v][%v]=%v ", i, j, arr[i][j])
}
fmt.Println()
}
fmt.Print("----------------------------\n")
// for range 循环
for i, v := range arr {
for j, v2 := range v {
fmt.Printf("arr[%v][%v]=%v ", i, j, v2)
}
fmt.Println()
}
}