登录
首页 >  Golang >  Go问答

Go 结构体中的匿名字段是公开的还是私有的?

来源:stackoverflow

时间:2024-02-25 09:54:20 469浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《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 结构体中的匿名字段是公开的还是私有的?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>