溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go值類型和引用類型是什么

發布時間:2022-03-30 13:45:18 來源:億速云 閱讀:236 作者:iii 欄目:移動開發

今天小編給大家分享一下Go值類型和引用類型是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

值類型和引用類型

所有像 int、float、bool 和 string 這些基本類型都屬于值類型,使用這些類型的變量直接指向存在內存中的值:

Go值類型和引用類型是什么

當使用等號 = 將一個變量的值賦值給另一個變量時,如:j = i,實際上是在內存中將 i 的值進行了拷貝:

Go值類型和引用類型是什么

你可以通過 &i 來獲取變量 i 的內存地址,例如:0xf840000040(每次的地址都可能不一樣)。

值類型變量的值存儲在堆中。

內存地址會根據機器的不同而有所不同,甚至相同的程序在不同的機器上執行后也會有不同的內存地址。因為每臺機器可能有不同的存儲器布局,并且位置分配也可能不同。

更復雜的數據通常會需要使用多個字,這些數據一般使用引用類型保存。

一個引用類型的變量 r1 存儲的是 r1 的值所在的內存地址(數字),或內存地址中第一個字所在的位置。

Go值類型和引用類型是什么

這個內存地址稱之為指針,這個指針實際上也被存在另外的某一個值中。

同一個引用類型的指針指向的多個字可以是在連續的內存地址中(內存布局是連續的),這也是計算效率最高的一種存儲形式;也可以將這些字分散存放在內存中,每個字都指示了下一個字所在的內存地址。

當使用賦值語句 r2 = r1 時,只有引用(地址)被復制。

如果 r1 的值被改變了,那么這個值的所有引用都會指向被修改后的內容,在這個例子中,r2 也會受到影響。

以上就是“Go值類型和引用類型是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女