gpt4 book ai didi

dart - 如何在 dart 中创建动态变量

转载 作者:行者123 更新时间:2023-12-05 00:20:18 25 4
gpt4 key购买 nike

我正在将 java 脚本移动到 dart,在 java 脚本中我创建了动态变量,例如

window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

我怎样才能用 Dart 做到这一点?

最佳答案

在 Dart Window ( window 的类型)是一个类。您不能向 Dart 类动态添加属性。window["text" + pageNumber] = 123;将与 Map 一起使用. JS 中的对象表示与 map 非常相似,因此可以在那里使用。
如果另一个类实现了 []运算符,您也可以在该类的实例上调用它,但它仍然不会添加属性。它实际上做什么仅取决于 [] 的实现运算符(operator)。

Dart 中可能有不同的方法来实现您想要的,但是您没有添加有关您尝试解决的实际问题的详细信息。

您可以在 Dart 中使用普通的全局变量,如在
Global Variables in Dart .

对于您的用例,您可以通过这种方式创建全局 Map 变量

final Map<String,int> myGlobals = <String,int>{};

创建一个存储带有字符串名称的整数值的映射。

使用 myGlobals['someName'] = 123; 设置值并用 print(myGlobals['someName']); 阅读它们.

如果您需要设置一个也可用于您可能使用的 JS 库的全局值,您可以使用
import 'dart:js';
import 'dart:html';

main() {
int pagenumber = 5;
context['Window']['text$pagenumber'] = 123;
window.alert('${context['Window']['text$pagenumber']}');
}

试试看 DartPad .

暗示:
"text" + pageNumber pageNumber 时不起作用不是字符串。
在 Dart 中,您不能添加字符串和数字。 "text" + pageNumber.toString()会工作,但 'text$pagenumber'是一种更大胆的方式来做到这一点。在字符串插值中 toString()会自动为您调用。

另见 Dart js-interop not working if .dart file isn't included .

关于dart - 如何在 dart 中创建动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786521/

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