首頁 >後端開發 >Golang >Go 結構匿名欄位是公共的還是私有的?

Go 結構匿名欄位是公共的還是私有的?

WBOY
WBOY轉載
2024-02-05 23:30:12918瀏覽

Go 结构匿名字段是公共的还是私有的?

問題內容

眾所周知,以大寫字母開頭的字段是公共字段,非大寫字母開頭的字段是私有字段。但golang也支援匿名字段。例如:

type myType struct {
  string
}

這些欄位是為嵌入而設計的。但這個欄位是公共的還是私有的?


正確答案


如果嵌入類型的類型名稱是小寫的,則它具有包可見性。例如:

type t struct {
    string
}

func main() {
    x := t{}
    x.string = "a"
    fmt.println(x)
}

但是,如果您將類型 t 移到另一個套件 p

package p

type t struct {
  string
}
package main

import "testmod/p"

func main() {
    x := p.T{}
    x.string = "a" // Error
}

以上是Go 結構匿名欄位是公共的還是私有的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除