go数组\二维数据\数组遍历
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
fmt.Println(strconv.Atoi("88"))
fmt.Println(strconv.Itoa(999))
fmt.Println(strings.ToUpper("aa"))
fmt.Println(strings.ToLower("ACCccc"))
//int 默认为 int64
var arr [3]int64 = [3]int64{1, 2, 3}
fmt.Println(len(arr))
fmt.Println(arr)
fmt.Printf("arr地址%p\n", &arr)
fmt.Println("arr[0]地址", &arr[0])
fmt.Println("arr[1]地址", &arr[1])
var arr2 = [3]int{4, 5, 6}
fmt.Println(arr2)
var arr3 = [...]int{7, 5, 6}
fmt.Println(arr3)
var arr4 = [...]int{2: 7, 1: 5, 0: 6}
fmt.Println(arr4)
//通过len遍历
for i := 0; i < len(arr4); i++ {
fmt.Printf("第%v个的值是%v\n", i, arr4[i])
}
fmt.Println("-------------")
//通过for range 遍历
for i, v := range arr4 {
fmt.Printf("第%v个的值是%v\n", i, v)
}
//忽略 index
for _, v := range arr4 {
fmt.Printf("值是%v\n", v)
}
fmt.Println("-------------")
changeArrValue(&arr4)
for i, v := range arr4 {
fmt.Printf("第%v个的值是%v\n", i, v)
}
fmt.Println("-------------")
canntChangeArrValue(arr4)
for i, v := range arr4 {
fmt.Printf("第%v个的值是%v\n", i, v)
}
fmt.Println("-------------")
bianliArr2()
fmt.Println("-------------")
bianliArr3()
}
func canntChangeArrValue(arr [3]int) {
arr[0] = 44
}
func changeArrValue(arr *[3]int) {
(*arr)[0] = 22
}
//for遍历
func bianliArr2() {
var arr [3][3]int = [3][3]int{{1, 4, 7}, {2, 5, 8}, {3, 6, 9}}
fmt.Println(arr)
for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr[i]); j++ {
fmt.Printf("%v\t", arr[i][j])
}
fmt.Println()
}
}
//for range遍历
func bianliArr3() {
//只能省略一维
arr := [...][3]int{
{1, 4, 7},
{2, 5, 8},
{3, 6, 9}}
fmt.Println(arr)
for k, v := range arr {
for k1, v1 := range v {
fmt.Printf("arr[%v][%v]=%v \t", k, k1, v1)
}
fmt.Println()
}
}