golang 空結構體 struct{} 可以用來節省記憶體
a := struct{}{}
println(unsafe.sizeof(a))
// output: 0
理由如下:
本例說明在map裡節省資源的用途:
set := make(map[string]struct{})
for _, value := range string {}
}fmt.println(set)
// output: map[orange:{} apple:{}]
下例,演示了struct{}可以向人展示物件中不需要任何資料,僅包含需要方法。在呼叫也並無任何區別
type lamp struct程式設計客棧{}
func (l lamp) on()
func (l lamp) off()
func main() .on()
lamp{}.off()
// output:
// on
// off
}還有其他情況,比如有時候使用channel,但並不需要附帶任何資料。
func worker(ch chan struct{})
Golang結構體知識
在看docker原始碼時,碰到了這個語句 container.lock 看到上面直接對struct container進行上鎖時,我翻了一下這個結構體,發現沒有定義任何鎖啊,怎麼上鎖的咧。於是我就翻了一下這個結構 體的一些子屬性,發現了state的定義 container container.go ...
Golang 學習 結構體
結構體定義 結構體是一種資料型別。定義型別 地位等價於 int byte bool string.通常放在全域性位置 type person struct 注意 結構體內不能賦初值,不能用 var 修飾。普通變數定義和初始化 普通變數的賦值和使用 使用 索引成員變數。var man person m...
Golang結構體初探
go語言中的基礎資料型別可以表示一些事物的基本屬性,但是當我們想表達乙個事物的全部或部分屬性時,這時候再用單一的基本資料型別明顯就無法滿足需求了,go語言提供了一種自定義資料型別,可以封裝多個基本資料型別,這種資料型別叫結構體,英文名稱struct。也就是我們可以通過struct來定義自己的型別了。...