struct嵌入(go 继承)

这篇具有很好参考价值的文章主要介绍了struct嵌入(go 继承)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

struct嵌入(go 继承)

type A struct {
	name string
	id   string
}
type B struct {
	A
}

func (b *B) String() string {
	return b.name
}

在这段代码中,定义了两个结构体 AB,其中 B 包含了 A 的所有字段和方法。B 结构体还新增了一个 String() 方法,用于返回 B 结构体中的 name 字段。

String() 方法中,通过 b.name 访问了 B 结构体中匿名字段 A 中的 name 字段。这是因为在 Go 中,如果结构体中包含了一个或多个匿名字段,那么这些字段的类型和字段名都会被继承到当前结构体中,就好像这些字段是当前结构体的直接字段一样。

因此,B 结构体中包含了 Anameid 字段,以及 A 中的所有方法,所以在 B 结构体中可以直接访问 A 中的 name 字段。文章来源地址https://www.toymoban.com/news/detail-511829.html

到了这里,关于struct嵌入(go 继承)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go中string的底层是如何实现的

    今天来了解一下go语言的string的底层是怎么实现的,我们知道java的string是一个类实现的,其实go也是类似的,go使用结构体实现了string。 string的底层实现 go的string源码位于 src/runtime/string.go 中,通过 stringStruct 定义了string的数据结构 当我们在赋值一个字符串的时候发生了什么?

    2024年02月16日
    浏览(29)
  • GO 中高效 int 转换 string 的方法与高性能源码剖析

    Go 语言 中,将整数(int)转换为字符串(string)是一项常见的操作。 本文将从逐步介绍几种在 Go 中将 int 转换为 string 的常见方法,并重点剖析这几种方法在性能上的特点。另外,还会重点介绍 FormatInt 高效的算法实现。 最直接且常用的方法是使用 strconv 包中的 Itoa 函数。

    2024年01月21日
    浏览(31)
  • Go中字符串处理:fmt.Sprintf与string.Builder的比较

    在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用 fmt.Sprintf 函数和 string.Builder 类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。 fmt.Sprintf 是一个函数,它根据提供的格式化字符串和参数列表,将它们格式化为

    2024年02月05日
    浏览(33)
  • go 语言(九)----struct

    定义一个结构体 结构体使用 结构体传参

    2024年01月20日
    浏览(28)
  • Go Struct

    结构体(简称struct)用于创建不同数据类型的成员集合,放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中,但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非常有用。 声明结构体 要在Go中声

    2024年02月09日
    浏览(24)
  • 【go语言基础】结构体struct

    主要是敲代码,敲的过程中会慢慢体会。 结构体是用户定义的类型,表示若干字段的集合,目的是将数据整合在一起。 简单的说,类似Java中的实体类。存储某个实体属性的集合。 注意:结构体名字,结构体属性名的首字母大写代表其余的包可以访问该结构体,类似Java中的

    2024年02月13日
    浏览(47)
  • Go语言入门6(struct 结构体)

    ​结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员 type + 结构体名 + struct + {成员列表} ​⭐如果结构体成员名字是以大写字母开头的,那么该成员就是导出的。这是Go语言导出规则决 定的。一个结构体可能同时包含导出和

    2023年04月12日
    浏览(30)
  • go struct结构体之间的转换

    原文链接:https://www.zhoubotong.site/post/94.html 说下背景吧,大家在开发中可能在不同的目录(package)下定义了相同的struct(属性参数完全一样如名字、个数和类型),在方法调用传参数的时候,可能是用到了其中某一个struct的引用。 那么这里就牵扯到相互间的转换:直接上demo: 显然

    2023年04月17日
    浏览(38)
  • 【Java扫盲篇】String、String Buffer和String Builder的区别

    你在面试时,面试官让你讲讲 String String Buffer String Builde r的区别,你是否能流畅的、完整的叙述出他们三者的区别? 相同点: 他们的底层都是由char数组实现的。 不同点: String对象一旦创建,是不能修改的,如果要修改,会重新开辟空间来存储修改后的对象;而String Buffer和

    2024年04月22日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包