站長資訊網
        最全最豐富的資訊網站

        go語言有引用傳遞么

        go語言沒有引用傳遞。go語言沒有引用變量,程序中定義的每個變量都占用一個唯一的內存位置,因此go語言不能創建兩個共享同一內存位置的變量。

        go語言有引用傳遞么

        本文環境:windows10系統、Go 1.11.2版本,本文適用于所有品牌的電腦。

        導語:

        go語言沒有引用傳遞。go語言沒有引用變量,程序中定義的每個變量都占用一個唯一的內存位置,因此go語言不能創建兩個共享同一內存位置的變量。

        (學習視頻分享:編程視頻)

        首先要明確一點,Go 沒有引用變量,所以 Go 語言里調用函數的時也沒有引用傳遞。

        什么是引用變量?

        在一些開發語言中(比如 C++),對已存在的變量可以聲明別名,這種別名稱為引用變量。

         1#include <stdio.h>  2  3int main() {  4        int a = 10;  5        int &b = a;  6        int &c = b;  7  8        printf("%p %p %pn", &a, &b, &c); // 0x7ffe114f0b14 0x7ffe114f0b14 0x7ffe114f0b14  9        return 0; 10}

        可以看到 a、b 和 c 都指向相同的內存位置。對 a 的寫操作會影響 b 和 c。當你想在不同的范圍內聲明引用變量時,這是很有用的——即函數調用時。

        Go 語言沒有引用變量

        與 C++ 不同,Go 程序中定義的每個變量都占用一個惟一的內存位置。

        1package main 2 3import "fmt" 4 5func main() { 6        var a, b, c int 7        fmt.Println(&a, &b, &c) // 0x1040a124 0x1040a128 0x1040a12c 8}

        創建兩個共享同一內存位置的變量是不可能的。可以創建兩個指向同一內存位置的變量,不過這與兩個變量共享同一內存位置是不同的。

         1package main  2  3import "fmt"  4  5func main() {  6        var a int  7        var b, c = &a, &a  8        fmt.Println(b, c)   // 0x1040a124 0x1040a124  9        fmt.Println(&b, &c) // 0x1040c108 0x1040c110 10}

        上面這段代碼,b 和 c 都具有相同的值 — 即變量 a 的地址,但 a、c 存儲在內存中不同的位置。改變 b 的內容不會影響到 c。

        map 和 channel 是引用?

        錯!map 和 channel 不是引用,如果是的話下面這段代碼會輸出 false。

        如果map m 是 C++ 風格的引用變量,則在 main() 聲明的 m 和 在 fn() 聲明的 m 會共享相同的內存空間。但是,因為對 fn() 中 m 賦值不影響 main() 的 m,所以我們可以看出 map 不是引用變量。

        總結

        Go 沒有引用傳遞,因為 Go 沒有引用變量。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 欧美日韩精品在线观看| 国产免费久久精品99久久| 国产精品1区2区3区在线播放| 国产精品免费久久| 欧美精品亚洲精品日韩传电影| 亚洲综合一区二区国产精品| 无码精品人妻一区二区三区漫画| 91久久精品国产免费直播| 无码国产乱人伦偷精品视频| 国产精品午夜一级毛片密呀| 99在线热播精品免费99热| 亚洲AV无码国产精品麻豆天美| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 66精品综合久久久久久久| 久久精品麻豆日日躁夜夜躁| 亚洲国产精品成人精品无码区| 欧美日韩精品在线观看| 欧美日韩国产中文精品字幕自在自线| 国产精品小黄鸭一区二区三区| 国产L精品国产亚洲区久久| 99RE8这里有精品热视频| 99国内精品久久久久久久| 91精品国产人成网站| 88国产精品欧美一区二区三区| 日韩精品国产自在久久现线拍 | 精品久久久久久99人妻| 国产精品成人观看视频网站| 亚洲国产精品嫩草影院| 日韩精品久久久久久| 88国产精品欧美一区二区三区| 国产精品免费网站| 最新国产精品拍自在线播放| 久久久久99精品成人片牛牛影视| 精品无码久久久久久久久久| 国产精品久久久久久久久鸭 | 桃花岛精品亚洲国产成人| 97精品人妻系列无码人妻 | 3级黄性日本午夜精品| 亚洲成人精品久久| 91精品国产综合久久香蕉| 91人前露出精品国产|