首页 > 后端开发 > Golang > 如何在保留现有方法的同时扩展 Go 中的自定义类型?

如何在保留现有方法的同时扩展 Go 中的自定义类型?

Susan Sarandon
发布: 2024-12-07 09:50:11
原创
1091 人浏览过

How Can I Extend Custom Types in Go While Preserving Existing Methods?

在扩展自定义类型时保留方法

在使用命名类型进行 JSON 解组时,您可能会遇到访问属于基础类型。例如,定义一个从 time.Time 派生的命名类型 StartTime,并尝试访问其 Date() 方法。

要克服此限制并向现有类型添加方法,同时保留其原始方法,嵌入现有类型。嵌入提供了一种将字段和方法从嵌入式匿名类型升级为新类型的便捷方法。

例如:

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

在此代码段中,我们匿名嵌入 time.Time 类型在开始时间内。根据 Go 结构体类型规范,匿名字段中的所有字段和方法都会被提升,并且可以直接从封闭类型访问。

现在,您可以无缝调用 Date() 和任何其他时间方法.Time 使用 StartTime 实例。这种方法允许您创建具有扩展功能的命名类型,同时保留基本类型的原始功能。

以上是如何在保留现有方法的同时扩展 Go 中的自定义类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

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