在 NodeJS 中,我可以在一处声明回调并在一处使用它,以避免破坏项目的结构。
一个.js
module.exports = class A(){
constructor(name, callback){
this.name = name;
this.callback = callback;
}
doSomeThingWithName(name){
this.name = name;
if(this.callback){
this.callback();
}
}
}
B.js
const A = require(./A);
newA = new A("KimKim", ()=> console.log("Say Oyeah!"));
在 Go 中,我也想用接口和实现来做同样的事情。
前
type canDoSomething interface {
DoSomething()
}
type AStruct struct {
name string
callback canDoSomething
}
func (a *AStruct) DoSomeThingWithName(name string){
a.name = name;
a.callback.DoSomething()
}
B.go
import (A);
newA = A{}
newA.DoSomeThingWithName("KimKim");
我可以覆盖文件 B.go 中接口函数的逻辑吗?我该怎么做才能使它们等同于 NodeJS 的样式?
我试试
import (A);
newA = A{}
// I want
//newA.callback.DoSomething = func(){}...
// or
// func (a *AStruct) DoSomething(){}...
// :/
newA.DoSomeThingWithName("KimKim");
暮色呼如
子衿沉夜
相关分类