卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34004本站已运行391

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

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
}
卓越飞翔博客
上一篇: GoLand 调试器 |附加到进程 | dlv.exe 访问被拒绝
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏