gpt4 book ai didi

dart - Dart "Expando"功能是什么,它有什么作用?

转载 作者:行者123 更新时间:2023-12-03 13:28:58 25 4
gpt4 key购买 nike

最近在 Dart 中看到了术语“Expando”。听起来不错。 API 并没有给我提供太多线索。

一两个例子可能最有帮助!

(不确定这是否相关,但我最着急的是一种向类添加方法(getter)和/或变量的方法。希望这可能是解决这个问题的关键。(提示:我正在使用 Nosuchmethod 方法现在并希望能够返回未找到方法的值。))

提前致谢,

_swarmii

最佳答案

Expandos 允许您将对象关联到其他对象。一个非常有用的例子是 HTML DOM 元素,它本身不能被子类化。让我们创建一个顶级扩展来为元素添加一些功能 - 在这种情况下是 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');
}

关于dart - Dart "Expando"功能是什么,它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com