日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Golang的值类型和引用类型的范围、存储区域、区别

發布時間:2023/12/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Golang的值类型和引用类型的范围、存储区域、区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常見的值類型和引用類型分別有哪些?

值類型:基本數據類型 int 系列, float 系列, bool, string 、數組和結構體struct,使用這些類型的變量直接指向存在內存中的值,值類型的變量的值通常存儲在棧中。

引用類型:指針、slice切片、map、管道chan、interface 等都是引用類型

數據存儲的兩大塊:棧和堆

在內存里分成兩大塊,棧和堆,值類型的變量通常存儲在棧區,引用類型通常存儲在堆區,在golang中,但有可能值類型也存儲在堆區,反過來也有可能引用類型存儲在棧區。

兩種類型的區別(拷貝操作和函數傳參)

值類型:值類型的變量通常在棧中分配。當使用等號=將一個變量的值賦給另一個變量時,如num=100, j = num,實際上是在內存中將num的值進行了拷貝。可以通過 &i 獲取變量 i 的內存地址。? 值拷貝

引用類型:變量存儲的是一個地址,這個地址對應的空間才真正存儲數據(值),內存通常在堆上分配,當沒有任何變量引用這個地址時,該地址對應的數據空間就成為一個垃圾,由GC來回收。?

引用類型擁有更復雜的存儲結構:(1)分配內存 (2)初始化一系列屬性等一個引用類型的變量r1存儲的是r1的值所在的內存地址(數字),或內存地址中第一個數字所在的位置,這個內存地址被稱之為指針,這個指針實際上也被存在另外的某一個數字中。 可以看本篇文章了解Golang指針基本介紹及使用案例

轉載于:https://www.cnblogs.com/wt645631686/p/9476561.html

總結

以上是生活随笔為你收集整理的Golang的值类型和引用类型的范围、存储区域、区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。