91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

=與:=在GO語言中有什么不同的地方

發布時間:2020-12-15 15:10:59 來源:億速云 閱讀:190 作者:Leah 欄目:開發技術

這篇文章給大家介紹=與:=在GO語言中有什么不同的地方,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

錯誤的做法

//聲明變量a
var a int
//聲明變量a并給變量a賦值
a := 1
//錯誤提示
no new variables on left side of :=
//說明

重復聲明變量a

聲明不賦值的初始化值

整型和浮點型變量的默認值為 0,如var a int,默認a=0

字符串變量的默認值為空字符串

布爾型變量默認為 bool

切片、函數、指針變量的默認為 nil

使用編譯器推導類型

var a=10 //默認a為整型

特殊例子

正確

var conn net.Conn
var err error
conn, err = net.Dial("tcp", "127.0.0.1:8080")
conn, err = net.Dial("tcp", "127.0.0.1:8080")

正確(特殊)

//雖然err重復聲明了,但是conn和conn2沒有重復聲明,只要有一個新聲明,不會報錯
conn, err := net.Dial("tcp", "127.0.0.1:8080")
conn2, err := net.Dial("tcp", "127.0.0.1:8080")

錯誤

//重復聲明了
conn, err := net.Dial("tcp", "127.0.0.1:8080")
conn, err := net.Dial("tcp", "127.0.0.1:8080")

補充:從go語言中找&和*區別

*和&的區別 :

1、& 是取地址符號 , 即取得某個變量的地址 , 如 ; &a

2、*是指針運算符 , 可以表示一個變量是指針類型 , 也可以表示一個指針變量所指向的存儲單元 , 也就是這個地址所存儲的值 .

從代碼中驗證 :

先構建一個Rect類型 :

=與:=在GO語言中有什么不同的地方

1. &是取地址符號, 取到Rect類型對象的地址

=與:=在GO語言中有什么不同的地方

2. *可以表示一個變量是指針類型(r是一個指針變量):

=與:=在GO語言中有什么不同的地方

3.*也可以表示指針類型變量所指向的存儲單元 ,也就是這個地址所指向的值

=與:=在GO語言中有什么不同的地方

4.查看這個指針變量的地址 , 基本數據類型直接打印地址

=與:=在GO語言中有什么不同的地方

摘自其他博客 :

經常會見到: p . *p , &p 三個符號

p是一個指針變量的名字,表示此指針變量指向的內存地址,如果使用%p來輸出的話,它將是一個16進制數。而*p表示此指針指向的內存地址中存放的內容,一般是一個和指針類型一致的變量或者常量。

而我們知道,&是取地址運算符,&p就是取指針p的地址。等會,怎么又來了個地址,它到底和p有什么區別?

區別在于,指針p同時也是個變量,既然是變量,編譯器肯定要為其分配內存地址,就像程序中定義了一個int型的變量i,編譯器要為其分配一塊內存空間一樣。

而&p就表示編譯器為變量p分配的內存地址,而因為p是一個指針變量,這種特殊的身份注定了它要指向另外一個內存地址,程序員按照程序的需要讓它指向一個內存地址,這個它指向的內存地址就用p表示。

而且,p指向的地址中的內容就用*p表示。

關于=與:=在GO語言中有什么不同的地方就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

安化县| 龙山县| 阜城县| 绥阳县| 札达县| 恩施市| 金溪县| 敖汉旗| 富源县| 绥芬河市| 北宁市| 河东区| 大方县| 漳平市| 精河县| 泸州市| 涟源市| 达日县| 吉水县| 炉霍县| 昔阳县| 会昌县| 宜良县| 阜新| 大城县| 青冈县| 厦门市| 河南省| 闽侯县| 婺源县| 芜湖县| 华安县| 翁牛特旗| 喀喇沁旗| 镇沅| 渝北区| 涟源市| 兴和县| 曲松县| 巴林左旗| 广汉市|