Golang空結構體struct 用途,你知道嗎

2022-09-21 17:15:10 字數 610 閱讀 4181

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來定義自己的型別了。...