是否计划在Dart语言中添加功能来声明闭包(不使用typedef)作为类型函数?

时间:2013-07-08 05:59:46

标签: dart

Dart语言中的闭包很常使用,因为它们非常强大。

我想问关于闭包可用性的问题。

假设此源代码:

class SomeWork<T> {
  Function _test;

  SomeWork(bool test(T a, T b)) {
    _test = test;
  }
}

如果我将此代码重写为此代码片段,那么函数(作为参数)将是无类型的(或者将具有不同的类型)。

class SomeWork<T> {
  final Function test;

  SomeWork(this.test) {
  }
}

问题:

  • 计划在Dart语言中添加功能来声明闭包(不使用typedef,“在运行中”)作为类型函数?

像这个代码示例:

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<>类似的类型的可能性。

1 个答案:

答案 0 :(得分:1)

不,我知道这里没有任何计划。在Dart开发的早期,关于类型注释语法的这个不幸的角落有很多讨论,但是语言设计者觉得这是一个值得的权衡,以便让来自C,C ++,Java的程序员看起来很熟悉的类型注释和C#。