gpt4 book ai didi

go - 在golang的继承方法中使对象可访问

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:09 26 4
gpt4 key购买 nike

我正在尝试在 golang 中实现继承。下面是示例:

type A struct {
Number int
}

type B struct{
A
name String
}

func (a A) GetNumber() {
// Here I want to use instance of B
fmt.Println(a) // but this is giving me instance of A
}

如果 A 被 B 继承,是否有可能在 A 的函数中获取 B 的实例?

最佳答案

首先,你的代码有错误。在您没有创建另一个定义为 String 的类型之前,您必须将其更正为 string

然后在 Go 中您可以使用复合结构,这意味着您可以直接访问包含在另一个结构中的结构字段,就像您已经做的那样。

这意味着您可以在方法接收器上调用方法,该方法接收器确实声明了结构字段。要更正您的示例,如果我正确理解您的问题:

package main

import (
"fmt"
)

type A struct {
Number int
}

type B struct{
A
name string
}

func main() {
b := &B{A{1}, "George"}
b.GetValues()
}

func (b B) GetValues() {
fmt.Println(b.Number)
fmt.Println(b.name)
}

在下面的示例中,因为 struct A 包含在 struct B 中,这意味着您可以调用在 struct A 中声明的结构字段获取值方法。这是因为 struct B 继承了 struct A 字段。

https://play.golang.org/p/B-XJc6jddE

关于go - 在golang的继承方法中使对象可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com