将类似 DSL 的构造函数调用与匿名 class 声明相结合
Combine DSL-like construstor call with anonymous class declaration
可能吗?
我试过这样的事情:
object foo extends Foo {
constructorNamedArg = "qqq";
} {
abstractMethod() => bar.baz();
}
根据the specification,这是不可能的,只能有位置参数列表。
我不会为此使用继承。相反,我会将 Foo
定义为具体的 class:
class Foo(String constructorNamedArg, Baz abstractMethod()) {}
现在在呼叫站点我会写:
Foo {
constructorNamedArg = "qqq";
abstractMethod() => bar.baz();
}
甚至:
Foo {
constructorNamedArg = "qqq";
function abstractMethod() {
return bar.baz();
}
}
在锡兰,从具有形式化方法的抽象 class 到由函数参数化的具体 class 是一种常见的重构。
HTH
可能吗?
我试过这样的事情:
object foo extends Foo {
constructorNamedArg = "qqq";
} {
abstractMethod() => bar.baz();
}
根据the specification,这是不可能的,只能有位置参数列表。
我不会为此使用继承。相反,我会将 Foo
定义为具体的 class:
class Foo(String constructorNamedArg, Baz abstractMethod()) {}
现在在呼叫站点我会写:
Foo {
constructorNamedArg = "qqq";
abstractMethod() => bar.baz();
}
甚至:
Foo {
constructorNamedArg = "qqq";
function abstractMethod() {
return bar.baz();
}
}
在锡兰,从具有形式化方法的抽象 class 到由函数参数化的具体 class 是一种常见的重构。
HTH