package main import "log" func main() { // 值類型 // int float bool string 數組和結構體 // 聲明瞭編譯器就會爲其分配內存,有初始默認值 // 賦值給另外的變量,就是在內存中進行了拷貝 var name string stu1 := "lzh" stu2 := stu1 log.Printf("%p, %p", &stu1, &stu2) // 引用類型 // slice map chan // 引用類型必須申請內存纔可使用 // make()就是給引用類型申請內存空間的 返回引用類型自己 nums := []int{1,2,3,4,5} // 賦值就是把引用賦值給了對方 num1 := nums // 兩個切片底層指向的是一個數組,一個修改,其餘也會變 num1[1] = 100 log.Println(name) log.Printf("%p: %v", &nums, nums) log.Printf("%p: %v", &num1, num1) nums[1] = 1 dict1 := map[string]string{"name": "lzh"} dict2 := dict1 dict2["name"] = "carp" log.Printf("%p: %v", &dict1, dict1) log.Printf("%p: %v", &dict2, dict2) }