我仍在学习Golang,想问点什么。是否可以执行这样的操作并将其他任何子级传递给扩展Parent结构的PMethod?
type Parent struct{
PAttribute string
}
func (p *Parent) PMethod(c *Child){
fmt.Println("this is parent Attribute : " + p.PAttribute)
fmt.Println("this is child Attribute : " + c.CAttribute)
}
type Child struct{
Parent
CAttribute string
}
type Child2 struct{
Parent
CAttribute string
}
func main(){
c := Child{
Parent{
"parent"
},
"child",
}
c.PMethod(&c)
c2 := Child2{
Parent{
"parent"
},
"child",
}
c2.PMethod(&c2)
}
谢谢
就像其他人所说的,忘记继承,Go的继承是有充分理由的。因此,不要再对父母和孩子进行思考。Go具有成分(您在此处使用的成分),但是其行为有所不同。您可以在Go中使用接口,以传递Child和Child2,并使接收者对接收的对象无动于衷(只要它具有相同的功能)。但是,这可能是一个错误,因为您试图重新创建您在Go中熟悉的继承。不要那样做
如果您的类型是这样相关的,则您可能应该从接受要修改的类实例的嵌入式类中退后一步。嵌入式类应该对自己的字段起作用,仅此而已-
它将关注区分开,并使用作用于其上的方法保存数据。因此,不要考虑父母和孩子,而要考虑要共享的一些代码/数据。
考虑经典的继承问题“动物-
猫和狗”。有了继承,您将拥有一只猫和一条狗以及一个抽象的基类动物。Animal可能具有您期望的所有方法,然后您可能在Animal上写了一个Say()方法,该方法什么也没说,而Say()则向猫叫,而Say()则使猫和狗叫起来。
在Go语言中,您只需拥有Cats and
Dogs,并在每个对象上使用不同的Say()方法,它们都符合别人定义的Speaker()接口。为了分享一些行为,宁愿重复一些代码而不是大量额外的代码和复杂性。
请务必阅读“
有效的Go”并尝试使用可用的工具,而不是重新创建您熟悉的继承之类的工具。
在本教程中,他们将一个回调函数从父组件传递到子组件,并从子组件传递到子组件。我的问题是如何设置参数?我的猜测是,起点是在组件中调用。从那以后,我就不知道是如何进入的了。它是否存储在“on click方块板”中?
我有静态方法在我的类 这就是定义 这里用的是 这是我得到的一个错误 E0167类型为“void(TV_DepthCamAgent::)(int count,int copied_file)”的参数与类型为“void()(int,int)”的参数不兼容 错误C3867“TV_DepthCamAgent::progress_callback”:非标准语法;使用' 我做错了什么?
问题内容: 码: 当我尝试: 我在Eclipse中收到错误。 但当: 一切都好。为什么会有这种差异?谢谢。 问题答案: 因为语法是特殊的语法糖,仅在初始化数组变量时才适用。这是因为任务本身缺少类型信息;但是在赋值的特殊情况下,类型是从变量中完全推断出来的。 在第一个示例中,编译器知道您要分配给它(是),因此允许使用此语法。在后者中,您无需初始化变量(并且由于Java类型推断的弱点,它甚至也无法完全
问题内容: 将参数传递给已编译的代码: 结果是: 显示已通过的用户名。 目的: 为了防止每次测试代码时都需要手动构建和运行代码,目的是编写一个能够测试参数传递的测试。 尝试 运行以下测试: 结果是: 问题 它看起来像那样不能够这个参数传递给函数的结果是不是 问题答案: 根据我的评论,第一个值是可执行文件本身的(路径),因此应解决您的问题。您可以从标准包中查看标志测试,他们正在做类似的事情。 另外,
问题内容: 我有一个带有提交按钮的表单。该表单调用一个onclick函数,该函数将某物的状态从false设置为true。然后,我想将此状态传递回父级,这样,如果为true,则呈现componentA;如果为false,则呈现componentB。 我会如何反应?我知道我需要使用状态或道具,但不确定如何使用它。这也与单向流动反应原理矛盾吗? ComponentA代码: 控制其显示内容的父组件: 问题
我有一个表单,它有一个提交按钮。该表单调用一个函数onclick,该函数将某物的状态从false设置为true。然后我想把这个状态传递回父级,这样如果为true,它将呈现componentA,如果为false,它将呈现componentB。 我会如何反应呢?我知道我需要使用状态或道具,但不知道如何使用。这是否与单向流反应原理相矛盾?? 组件A代码: 控制其显示内容的父组件: