首页 > 后端开发 > Golang > 如何在 Go 中调用命名类型的底层类型方法?

如何在 Go 中调用命名类型的底层类型方法?

Susan Sarandon
发布: 2024-12-06 04:43:09
原创
629 人浏览过

How Can I Call Underlying Type Methods on a Named Type in Go?

调用命名类型的方法

在 Go 中,使用 type 关键字创建的命名类型与其基础类型不同。因此,属于底层类型的方法无法直接在命名类型上调用。

要解决此问题并使用其他方法扩展命名类型,同时保留其原始功能,可以采用嵌入技术。通过将基础类型匿名嵌入到命名类型中,嵌入类型的方法和字段将在命名类型中得到提升和访问。

例如,如果您有一个包装 time.Time 的命名类型 StartTime value:

type StartTime time.Time

func (st *StartTime) UnmarshalJSON(b []byte) error {...}
登录后复制

要访问 StartTime 类型上的 time.Time 方法,请将 time.Time 匿名嵌入其中StartTime:

type StartTime struct {
    time.Time
}
登录后复制

现在,您可以在 StartTime 上调用 Date() 等方法,就好像它们直接在类型上定义一样:

myStartTime.Date()
登录后复制

这种方法允许无缝扩展具有附加方法的命名类型,同时保留底层类型的原始功能。

以上是如何在 Go 中调用命名类型的底层类型方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

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