我在想,如果做这样的事情在golang甚至有可能 -在golang中,如何将方法分配给现有的结构对象?
type MyStruct struct {
id int
}
func (ms *MyStruct) PrintHello() {
fmt.Printf("Hello from original method %v", ms.id)
}
func main() {
fmt.Println("Hello, playground")
m := MyStruct{}
m.PrintHello()
m.PrintHello = func() {fmt.Printf("Hello from newer method 2")}
}
Error: cannot assign to m.PrintHello
https://play.golang.org/p/2oJQFFH4O5
很抱歉,如果这不适合去程序员是有意义的,我是新来的你去,如果一些人怀疑可以在Go中完成可以用动态类型语言完成的事情。谢谢! :-)
这个答案可能会提供一些见解http://stackoverflow.com/questions/21251242/is-it-possible-to-call-overridden-method-from-parent-struct-in-golang – Adam
https:// play .golang.org/p/Lp3aP2dqpt – mkopriva
@mkopriva做这件事的特殊方式可能比我的更优先。但是再次,它仍然包含能够访问内部结构数据成员的问题。但至少该方法本身是一个真正的方法。 – RayfenWindspear