首页 > 后端开发 > Golang > Go结构体中如何封装私有字段和方法?

Go结构体中如何封装私有字段和方法?

Mary-Kate Olsen
发布: 2024-12-08 06:26:10
原创
804 人浏览过

How to Encapsulate Private Fields and Methods in Go Structures?

结构体的私有字段和方法

在 Go 中,使用结构体时,有时需要将某些字段和方法设为私有,这意味着只有该结构的成员可以访问它们,而包范围内的其他类型或函数不应该访问它们。

要实现这一点,重要的是需要注意的是,在 Go 中,以大写字母开头的标识符是从包中导出的,并且可以被声明包之外的实体访问。相反,以小写字母开头的标识符只能在包本身内访问。

如果目标是让某个类型的成员只能由该类型的成员访问,则必须将该类型及其成员函数位于单独的包中,作为该包中的唯一类型。通过这样做,该类型及其成员将对该包私有,并且无法从外部访问。

以下是如何修改代码以使 mytype 结构和 doPrivate 方法私有:

// Define a separate package for mytype.
package mytypepkg

type mytype struct {
    size string
    hash uint32
}

func (r *mytype) doPrivate() string {
    return r.size
}
登录后复制

现在,mytype 和 doPrivate 被封装在它们自己的包中,使得它们无法从该包之外的其他类型或函数访问。

以上是Go结构体中如何封装私有字段和方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板