【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})
广告
将在 10 秒后关闭
bannerAds