您好,登錄后才能下訂單哦!
今天小編給大家分享一下Golang中struct{}和struct{}{}的區別是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
首先說下Golang中的結構體,結構體是由一系列具有相同類型或不同類型的數據構成的數據集合,Golang中使用關鍵字struct來創建一個結構體,語法如下:
typeStudentstruct { Name string }
下面定義一個Student結構體,例如:
typeStudentstruct { name string }
然后聲明一個Student類型的變量并賦值
var stu Student stu.name = "小明"
聲明一個struct類型變量并賦值還有一種方式是使用匿名struct,代碼非常簡潔:
stu := struct { name string }{ "小明", }
還可以使用匿名struct聲明一個變量但不賦值,例如:
stu := struct { }{ }
把空行和空格去掉后就是struct {} {},所以到此就可以看出struct {}和struct {} {}的區別了。
struct {}和struct { name string }一樣是結構體類型, 只是沒有任何元素。struct {}的特點是大小為0,不占用任何內存。
struct {} {}一個struct {}類型的值,該值也是空。
比如使用map類型構造集合,可以使用這樣一個類型的map:map[string]struct{},使用struct{}類型的值來節省空間。
package main import"fmt"funcmain() { zoo := make(map[string]struct{}) zoo["monkey"] = struct{}{} zoo["tiger"] = struct{}{} _, ok := zoo["monkey"] fmt.Println("Is monkey in the zoo?", ok) _, ok = zoo["cat"] fmt.Println("Is cat in the zoo?", ok) }
運行程序,輸出如下內容:
Ismonkeyinthezoo?trueIscatinthezoo?false
以上就是“Golang中struct{}和struct{}{}的區別是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。