首頁 > 後端開發 > Golang > Go 中的匿名結構和空結構是什麼?

Go 中的匿名結構和空結構是什麼?

Mary-Kate Olsen
發布: 2024-12-23 22:14:15
原創
784 人瀏覽過

What are Anonymous Structs and Empty Structs in Go, and How Are They Used for Signaling?

匿名結構體和空結構體

在 Go 中,匿名結構體是沒有名稱的結構體。它通常用於創建臨時或短暫的資料結構。空結構體沒有字段,佔用零位元組記憶體。

[第一個問題]

以下程式碼使用匿名結構體來表示戰士已經完成戰鬥:

done := make(chan struct{})
登入後複製

struct{} 類型表示一個空結構。這裡使用它是因為我們不需要在結構中儲存任何資料。我們只想用它來表示戰士已經完成戰鬥。

以下行將空結構送到完成通道:

done <- struct{}{}
登入後複製

需要額外的括號,因為 < ;和>運算子的優先權低於

[第二個問題]

下面這行等待所有勇士戰鬥結束:

for _ = range langs { <-done }
登入後複製

這一行使用範圍表達式從完成的通道接收。 _ 字元用作佔位符變量,表示我們不關心收到的值。這是因為戰士發送的空結構體不包含任何資料。

範圍表達式是必要的,因為它允許程式等待所有戰士完成戰鬥才能繼續。如果沒有它,程式只會等待第一個戰士完成戰鬥才繼續。

以上是Go 中的匿名結構和空結構是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板