我最近看到"Expando"这个词和Dart一起使用.听起来很有趣.API并没有给我提供多少线索.
举一两个例子可能会很有帮助!
(不确定这是否相关,但我最渴望的是一种将方法(Getter)和/或变量添加到类中的方法.希望这能成为解决这个问题的关键.(提示:我现在正在使用Nosuchmethod方法,希望能够返回未找到的方法的值.)
提前谢谢你,
_斯瓦米伊
我最近看到"Expando"这个词和Dart一起使用.听起来很有趣.API并没有给我提供多少线索.
举一两个例子可能会很有帮助!
(不确定这是否相关,但我最渴望的是一种将方法(Getter)和/或变量添加到类中的方法.希望这能成为解决这个问题的关键.(提示:我现在正在使用Nosuchmethod方法,希望能够返回未找到的方法的值.)
提前谢谢你,
_斯瓦米伊
Expandos允许您将对象与其他对象关联.一个非常有用的例子是HTML DOM元素,它本身不能被子类化.让我们制作一个顶级expando,向元素添加一些功能——在本例中,是typedef语句中给出的函数签名:
typedef CustomFunction(int foo, String bar);
Expando<CustomFunction> domFunctionExpando = new Expando<CustomFunction>();
现在要使用它,请执行以下操作:
main(){
// Assumes dart:html is imported
final myElement = new DivElement();
// Use the expando on our DOM element.
domFunctionExpando[myElement] = someFunc;
// Now that we've "attached" the function to our object,
// we can call it like so:
domFunctionExpando[myElement](42, 'expandos are cool');
}
void someFunc(int foo, String bar){
print('Hello. $foo $bar');
}