![](/img/trans.png)
[英]What does it mean to specify just a struct type as a struct member in Go?
[英]What does type do in the Go statement “type subscriber struct{…}?”
我是 Go 語言的新手,之前也從未使用過結構體。 我對結構的理解是,它們在相關時將不同類型的數據組合在一起。 就像這個例子顯示了來自“Head First Go”一書的內容:
`type subscriber struct{
name string
rate float64
active bool
}`
我的問題是該結構體代碼與該結構體代碼(我編寫的)相比如何:
var subscriber struct{
name string
rate float64
active bool
}
對我來說,第一個結構體(帶有關鍵字類型)似乎是您可以重用的結構體(即根據需要實例化多次)。 那么這將使它成為一個定義?
然后是第二個訂閱者結構 - 帶有關鍵字 var- 不像定義那么。 它只是一個使用 var 名稱訂閱者動態創建的結構嗎? 這意味着您無法使用此代碼創建更多訂閱者結構。
我正在查看 C 中的結構(這可能是一個錯誤),看起來結構更像是第一個帶有關鍵字類型的示例? 那就是結構代碼始終是一個定義,允許您根據需要創建任意數量的特定結構。 這是准確的嗎? 抱歉,我知道這在技術上更像是 2 個問題。
編碼:
struct {
name string
rate float64
active bool
}
是結構類型文字。
type
關鍵字引入了類型聲明。 問題中的type
語句使用指定的結構類型文字聲明命名類型subscriber
。
var
關鍵字引入了一個變量聲明。 問題中的var
語句聲明了具有由結構類型文字指定的匿名類型的變量subscriber
。
對我來說,第一個結構體(帶有關鍵字類型)似乎是您可以重用的結構體(即根據需要實例化多次)。
關鍵是一個聲明的類型有一個名字,這個名字可以用來指代這個類型。
然后是第二個訂閱者結構 - 帶有關鍵字 var- 不像定義那么。 它只是一個使用 var 名稱訂閱者動態創建的結構嗎?
這是一個定義,它定義了變量subscriber
。 變量subscriber
具有由struct 類型文字指定的匿名類型。
這意味着您無法使用此代碼創建更多訂閱者結構。
應用程序可以使用短變量聲明來聲明另一個具有相同匿名類型的變量:
subscriber2 := subscriber
應用程序可以聲明一個具有相同類型文字的變量:
var subscriber3 struct{
name string
rate float64
active bool
}
變量subscriber
、 subscriber2
和subscriber3
都具有相同的匿名類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.