48_Go基础_1_15 数组的数据类型

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     /*
 7         数据类型:
 8             基本类型:int,float,string,bool。。
 9             复合类型:array,slice,map,function,pointer,channel。。
10 
11         数组的数据类型:
12             [size]type
13 
14         值类型:理解为存储的数值本身
15             将数据传递给其他的变量,传递的是数据的副本(备份)
16                 int,float,string,bool,array
17         引用类型:理解为存储的数据的内存地址
18                 slice,map。。
19     */
20 
21     //1.数据类型
22     num := 10
23     fmt.Printf("%T\n", num) // int
24 
25     arr1 := [4]int{1, 2, 3, 4}
26     arr2 := [3]float64{2.15, 3.18, 6.19}
27     arr3 := [4]int{5, 6, 7, 8}
28     arr4 := [2]string{"hello", "world"}
29     fmt.Printf("%T\n", arr1) // [4]int
30     fmt.Printf("%T\n", arr2) // [3]float64
31     fmt.Printf("%T\n", arr3) // [4]int
32     fmt.Printf("%T\n", arr4) // [2]string
33 
34     //2.赋值
35     num2 := num            // 值传递
36     fmt.Println(num, num2) // 10 10
37     num2 = 20
38     fmt.Println(num, num2) // 10 20
39 
40     //数组呢
41     arr5 := arr1      // 值传递
42     fmt.Println(arr1) // [1 2 3 4]
43     fmt.Println(arr5) // [1 2 3 4]
44     arr5[0] = 10
45     fmt.Println(arr1) // [1 2 3 4]
46     fmt.Println(arr5) // [10 2 3 4]
47 
48     a := 3
49     b := 4
50     fmt.Println(a == b)       // 比较a和b的数值是否相等 false
51     fmt.Println(arr5 == arr1) // 比较数组的对应下标位置的数值是否相等 false
52     //fmt.Println(arr1 == arr2) // invalid operation: arr1 == arr2 (mismatched types [4]int and [3]float64)
53 
54 }