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) }