我正在将我的应用程序从 Java 重写为 Go,我知道这些语言以及范式完全不同,但我仍然设法转换几乎所有内容。
不幸的是,我无法将通用函数作为参数传递给另一个函数。在 Java 中它看起来像这样:
我有一个界面:
public interface Parser<T> {
public T parse(String line);
}
Run Code Online (Sandbox Code Playgroud)
fetch然后我在通用方法中使用这个接口
public static <T> List<T> fetch(Parser<T> parser) {
...
parser.parse(someLine);
...
return the list of generic types
}
Run Code Online (Sandbox Code Playgroud)
那么解析器方法如下所示:
class Parser{
static Foo ParseFoo(String line){
...
some custom parsing
...
}
}
Run Code Online (Sandbox Code Playgroud)
我这样使用它:
List<Foo> list = fetch(Parser::ParseFoo);
Run Code Online (Sandbox Code Playgroud)
我如何在 Go 中实现这一目标?
我尝试过声明通用接口、通用函数,但我无法理解这一点。