【Golang】关于指针
我正在努力学习。作为只有接触过PHP的我,我开始学习指针。
我希望在进行实验的同时,能够感受到指针的作用。
在解释指针之前
在解释指针之前,先讲解一下“变量”的概念。
变量
变量通常被比喻为一个用来存放物品的箱子。现在,请将这个用来存放物品的箱子想象成有编号的储物柜。
- どうしてそう考える必要があるか?
变量通常被存储和处理在个人电脑的内存中。当存储在电脑上时,会被分配一个十六进制地址并进行存储,当需要时再进行调用。
变量一词指的是一种类似于箱子的东西,它可以用来命名十六进制地址,以便人们更容易理解。为了稍微理解变量的概念,可以将其类比为带有编号的储物柜,接近于个人电脑的环境。
变量的声明
让我们在01号储物柜里输入一个数字试试看。与其他语言一样,也可以覆盖之前的数字。
var Locker01 int // 変数 Locker01 をint型として宣言
Locker01 = 5
fmt.Println(Locker01) // 5
Locker01 = 6
fmt.Println(Locker01) // 6
对不起,我前面的介绍太长了。
指针
大致上是转移装置。
– 一种特殊类型
如果用”と”和”で”来定义的话
var money Money
money = Money{
amount: 120,
currency: "yen",
}
fmt.Printf("money :%+v\n", money)
fmt.Printf("変数に格納されているアドレス :%p", money)
你可以确认存储的十六进制地址。
money :&{amount:120 currency:yen}
変数に格納されているアドレス :0xc00000a060
如果不使用”と”和”を”定义Money的情况下
var money Money
money = Money{
amount: 120,
currency: "yen",
}
fmt.Printf("money :%+v\n", money)
fmt.Printf("変数に格納されているアドレス :%p", money)
存储在变量中的地址没有显示出来,而是不知为何输出了属性。
money :{amount:120 currency:yen}
変数に格納されているアドレス :%!p(main.Money={120 yen})