GOLANG

10-GoLang数组

2018-10-18  本文已影响5人  箩篼
var ages [3]int = [3]int{1, 3, 5} 
// 取出数组中保存的值
     fmt.Println(ages)  //[1 3 5]
     fmt.Println(ages[0])
     fmt.Println(ages[1])
     fmt.Println(ages[2])
// [...]的含义, 让编译器根据赋值的元素个数自动计算数组的元素个数
    ages := [...]int{1, 3, 5} // 省略元素个数

注意点:

零值:
    int/int8/int16/int32/int64/uint/uint8/uint16/uint32/uint64/byte/rune/uintptr的默认值是0
    float32/float64的默认值是0.0
    bool的默认值是false
    string的默认值是""
    pointer/function/interface/slice/channel/map/error的默认值是nil
package main
import "fmt"
func main() {
    ages := [3]int{1, 3, 5}
    change(ages)
    fmt.Println(ages)  //[1 3 5]
}
func change(nums [3]int)  {
    nums[1] = 666
}

    var ages [3]int = [3]int{1, 3, 5}
    var nums [3]int
    nums = ages
    fmt.Println(ages)  //[1 3 5]
    fmt.Println(nums)  //[1 3 5]
    var ages [3]int = [3]int{1, 3, 5}
    var nums [3]int = [3]int{1, 2, 5}
    res := ages == nums
    fmt.Println(res)  //false
     ages := [3]int{1, 3, 5}
     for i:=0; i < 3; i++ {
        //fmt.Println(ages[i])  //1  3  5
        fmt.Printf("index = %d, value = %d\n", i, ages[i])
     }
   //range函数的两个返回值变量名任取
   //for i,v:=range ages{
     // fmt.Println(i,v)
     //}
     for index, value := range ages {
        fmt.Println(index, value)
     }
/*
0 1
1 3
2 5

*/
     var arr [2][3]int = [2][3]int{
        {1,2,3},
        {4,5,6},
     }
     fmt.Println(arr)  //[[1 2 3] [4 5 6]]
var values [2][3]int = [2][3]int{
        {1, 3, 5},
        {2, 4, 5},
     }

    values[0][1] = 666
    fmt.Println(values)  //[[1 666 5] [2 4 5]]
//省略的元素个数必须用...代替,若[]中不写...则代表的是切片,而非数组
values := [...][3]int{
        {1, 3, 5},
        {2, 4, 5},
    }
    fmt.Println(values)  //[[1 3 5] [2 4 5]]
// 这里代表定义了一个切片, 切片中保存的是数组
    //values := [][3]int{
    //  {1, 3, 5},
    //  {2, 4, 5},
    //}
// 这里代表定义了一个切片, 切片中保存的是切片
    //values := [][]int{
    //  {1, 3, 5},
    //  {2, 4, 5},
    //}
上一篇 下一篇

猜你喜欢

热点阅读