Dart语言中的闭包很常使用,因为它们非常强大。
我想问关于闭包可用性的问题。
假设此源代码:
class SomeWork<T> {
Function _test;
SomeWork(bool test(T a, T b)) {
_test = test;
}
}
如果我将此代码重写为此代码片段,那么函数(作为参数)将是无类型的(或者将具有不同的类型)。
class SomeWork<T> {
final Function test;
SomeWork(this.test) {
}
}
问题:
像这个代码示例:
class SomeWork<T> {
final Function<bool, T, T> test;
SomeWork(this.test) {
}
}
P.S。
为了澄清,我想在C#语言中添加(一段时间之后)这个例子,因为据我所知,Dart语言中的例子被认为不完全正确。
class SomeWork<T> {
sealed Func<T, T, bool> m_test;
SomeWork(Func<T, T, bool> test)
{
m_test = test;
}
}
即。我询问了使用与C#Func<>
和Action<>
类似的类型的可能性。
答案 0 :(得分:1)
不,我知道这里没有任何计划。在Dart开发的早期,关于类型注释语法的这个不幸的角落有很多讨论,但是语言设计者觉得这是一个值得的权衡,以便让来自C,C ++,Java的程序员看起来很熟悉的类型注释和C#。