dart - 在 Dart 中将函数/方法分配给变量

标签 dart

Dart 支持变量函数/方法的概念吗?因此,可以通过存储在变量中的名称来调用方法。

例如,在 PHP 中,这不仅可以针对方法完成:

// With functions...
function foo()
{
    echo 'Running foo...';
}

$function = 'foo';
$function();

// With classes...
public static function factory($view)
{
    $class = 'View_' . ucfirst($view);
    return new $class();
}

我在语言之旅或API中没有找到它。还有其他方法可以做这样的事情吗?

最佳答案

要将函数的名称存储在变量中并稍后调用它,您必须等到反射到达 Dart(或 get creativenoSuchMethod )。但是,您可以像 JavaScript 一样将函数直接存储在变量中

main() {
  var f = (String s) => print(s);
  f("hello world");
}

甚至内联它们,如果你正在进行递归,这会派上用场:

main() {
   g(int i) {
      if(i > 0) {
         print("$i is larger than zero");
         g(i-1);
      } else {
         print("zero or negative");
      } 
   }
   g(10);
}

存储的函数可以传递给其他函数

main() {
   var function;
   function = (String s) => print(s);
   doWork(function);
}

doWork(f(String s)) {
   f("hello world");
}

关于dart - 在 Dart 中将函数/方法分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10305195/

相关文章:

dart - 如何终止长时间运行的隔离#2

flutter - Dart Set<E> 如何比较项目?

dart - Dart-类来自字符串-类实例来自字符串

android - Flutter Firebase删除子集合不起作用

json - JSON数组到JSON对象

Dart - const 构造函数 : Initializing a class member using a function

string - 在 dart 语言中将驼峰式字符串转换为下划线

flutter - 用户如何在Google Maps Flutter上添加多个标记

date - 在 Dart 中,您如何格式化一个月中的某一天以表示 “11th” 、 “21st” 或 “23rd” ?

dart - 通过dart中的getComputedStyle访问伪元素属性值