golang 数组定义的几种方式
package main
import (
"fmt"
)
/**
数组
*/
func getArr() {
var arr [5]int
arr = [5]int{2, 4, 6, 9, 12}
fmt.Printf("test arr %p \n", arr)
}
// 第一种方式
func first() {
var arr1 [3]int = [3]int{3, 5, 9}
fmt.Println(arr1)
}
// 第二种方式
func second() {
var arr2 = [3]int{3, 5, 9}
fmt.Println(arr2)
}
// 第三种方式
func third() {
var arr3 = [...]int{3, 5, 9, 1, 4, 7}
fmt.Println(arr3)
}
// 第四种方式
func fouth() []int {
arr4 := []int{3, 4, 5}
fmt.Println("forth: ", arr4)
return arr4
}
// 获取第四种数组信息
func getFourth() {
fourArr := fouth()
for k, v := range fourArr {
fmt.Printf("forth的 key= %v, value = %v \n", k, v)
}
}
func main() {
// getArr()
// first()
// second()
// third()
// fouth()
// getFourth()
var arr [2][3]int
fmt.Printf("arr address is : %p \n", &arr)
fmt.Printf("arr[0] address is : %p \n", &arr[0])
fmt.Printf("arr[0][0] address is : %p \n", &arr[0][0])
fmt.Printf("arr[1] address is : %p \n", &arr[1])
fmt.Printf("arr[1][0] address is : %p \n", &arr[1][0])
//直接定义二维数组
var twoArr [3][2]int = [3][2]int{{1, 3}, {2, 5}, {22, 51}}
var twoArr2 = [3][2]int{{1, 3}, {2, 5}, {22, 511111}}
twoArr3 := [3][2]int{{1, 3}, {2, 5}, {22, 22211111}}
fmt.Println(twoArr)
fmt.Println(twoArr2)
fmt.Println(twoArr3)
fmt.Println("------")
i := twoArr3[0:2]
fmt.Println(i)
fmt.Println("直接定义切片")
//通过make处理
slice := make([]int, 4, 20)
fmt.Println(slice)
slice[0] = 1
fmt.Println(slice)
fmt.Println(cap(slice))
fmt.Println(len(slice))
sli2 := []int{2, 3, 4222}
fmt.Println(sli2)
fmt.Println(cap(sli2))
fmt.Println(len(sli2))
}
浙公网安备 33010602011771号