2014-11-05 83 views
2

Dart中可能存储具有返回参数类型信息的回调函数吗?看来我可以做到以下几点:如何将函数存储为类成员变量

class MyClass { 
    void addCallback(callback(int)) 
    { 
    _callback = callback; 
    } 

    var _callback; 
} 

但我想如果_callback没有为var宣布这将是很好,而是有关于它的返回和参数类型的信息。我无法在文档中找到关于此的信息,任何人都知道?

回答

1

您可以typedef这样的函数签名:

typedef bool Filter(num x); 

List<num> filterNumbers(List<num> numbers, Filter filter) { 
    return numbers.where(filter).toList(); 
} 

对于这样的更加伟大的信息,请查看这篇文章:https://www.dartlang.org/articles/idiomatic-dart/

+0

我明白了,我可以用'Filter'作为变量键入我的班级,非常好。虽然我确实认为能够在类中定义typedef会更清洁,因为它不会将任何内容暴露给当前名称空间(并且无论如何,您几乎都不会在类之外使用“Filter”,您会传递函数相同的签名)。谢谢! – 2014-11-05 14:58:45

+0

您可以使用库来控制您公开的内容。 – Tonio 2014-11-05 17:20:32

相关问题