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

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

WBOY
發布: 2024-02-05 23:30:12
轉載
917 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板