按照数据的划分数为两大类型
1.基本类型 int ,float,string, bool…
2.复合类型 array slice map function pointer channel…
GO语言中的数组是值类型并不是引用类型(内存地址),能够被值传递的类型 可以成为值类型;几个基本类型都是值类型,
package main
import "fmt"
func main() {
arr1 := [4]int{1, 2, 3, 4}
arr2 := [4]string{"a", "b", "c", "d"}
arr3 := [4]float64{1.11, 1.12, 1.13, 1.14}
fmt.Printf("%T\n", arr1) //[4]int
fmt.Printf("%T\n", arr2) //[4]string
fmt.Printf("%T\n", arr3) //[4]float64
//-------------------------------------------------------------------
num := 10
fmt.Printf("%T\n", num)
num2 := num //值传递
fmt.Println(num, num2)
num2 = 20
fmt.Println(num, num2)
//以上效果能够看出来 是值的传递
//测试数组
arr5 := arr1 //经过下面的输出结果可见GO语言中的数组和大多数语言不一样 它是值的传递
fmt.Println(arr1) //[1 2 3 4]
fmt.Println(arr5) //[1 2 3 4]
arr5[1] = 100
fmt.Println(arr1) //[1 2 3 4]
fmt.Println(arr5) //[1 100 3 4]
}
//数字在内存中开辟的是连续的内存,数字的地址是数组的首地址也是第一个元素的地址!