登录
首页 >  Golang >  Go问答

使用Golang读取其他包中结构体的私有字段

来源:stackoverflow

时间:2024-03-01 18:12:23 462浏览 收藏

哈喽!今天心血来潮给大家带来了《使用Golang读取其他包中结构体的私有字段》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我知道在 golang 上我们有公共和私有字段

package main
type user struct {

    displayname string 

    title *string 
}

显示名称是公开的,因此我可以从另一个包中读取它。标题是私人的,我无法直接阅读

我添加一个像这样的公共方法怎么样

package main
type user struct {

    displayname string 

    title *string 
}
func (user *user) publictitle() string {
  return user.title
}

type employeeuser user

所以我应该能够通过 localuser.publictitle() 在另一个包中读取标题?

package utility

var localUser *main.EmployeeUser
 
localUser.PublicTitle()

我试过了,好像不行。我有点困惑。

感谢帮助


正确答案


类型 employeeuser 是一种新类型。当您基于现有类型定义新类型时,基本类型的方法不会提升为新类型。

为此,您必须嵌入:

type EmployeeUser struct {
    User
}

本篇关于《使用Golang读取其他包中结构体的私有字段》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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