Dart相当于Ruby的instance_eval

时间:2014-08-17 22:17:53

标签: ruby dart metaprogramming

Ruby有一个非常简洁的方法叫instance_eval,它允许在特定实例的上下文中评估代码块。这很好,因为可以在不同的上下文中使用相同的代码块,并根据上下文如何定义某些方法来获得不同的结果。 Dart中有相同的东西吗?换句话说,我可以从类中获取方法并在另一个类中的另一个实例上附加和执行它,甚至可以通过让用户传入与该方法相对应的代码来定义方法。我知道有一些有限的形式可以通过子类化来模拟。

1 个答案:

答案 0 :(得分:1)

似乎在Dart中没有可能这样做。 但您可以根据自己的需要使用多种方法:

  1. 使用上下文作为此函数的参数创建函数:

    someFunction(context,arg1,arg2){...}

  2. 使用mixins:https://www.dartlang.org/articles/mixins/

  3. 使用泛型:https://www.dartlang.org/articles/optional-types/#generics