首页 > 后端开发 > Golang > Go 结构匿名字段是公共的还是私有的?

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

WBOY
发布: 2024-02-05 23:30:12
转载
913 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板