php小編草莓今天為大家介紹Golang中的全域結構體初始化。在Golang中,可以使用結構體來組織和管理數據,而全域結構體初始化是一種方便且常用的方式。透過全域結構體初始化,我們可以在程式啟動時對結構體進行初始化,避免每次使用結構體時都需要手動初始化的麻煩。以下我們將詳細介紹全域結構體初始化的具體方法和注意事項,幫助大家更能理解並使用這項功能。
我想宣告一個屬於某個套件的全域結構變數並初始化它。
我有以下目錄結構:
main ├── symbol | ├── symbol.go | └── comma.go ├── main.go └── go.mod
symbol.go:
package symbol type symbol struct{ name string format string }
comma.go:
package symbol var comma = symbol{} comma.name = "comma" comma.format = ","
main.go:
package main import "fmt" import "github.com/.../symbol" func main() { s := symbol.Comma fmt.Println(s.Name) }
當我運行它時,它顯示:
syntax錯誤:函數體外部的非宣告語句
我該如何解決這個問題?
宣告語句是套件層級唯一允許的語句類型。聲明
comma.name = "comma" comma.format = ","
是賦值語句。賦值不是聲明。
有兩種方法可以解決這個問題。第一種也是首選方法是使用複合文字來初始化變數宣告中的值。
var comma = symbol{name: "comma", format: ","}
第二種方法是將賦值語句移至 init
函數:
func init() { Comma.Name = "Comma" Comma.Format = "," }
init
函數在套件初始化時自動執行。
以上是golang全域結構體初始化的詳細內容。更多資訊請關注PHP中文網其他相關文章!