Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 对省道对象使用点表示法?_Dart - Fatal编程技术网

Dart 对省道对象使用点表示法?

Dart 对省道对象使用点表示法?,dart,Dart,我目前正在开发一个本地化类,它是静态的,可以在dart的应用程序的其他部分访问 我的目标是以一种简单的方式连接代码: Localization.MY_STRING 然后它将返回:“我的字符串” 起初,我认为本地化中的所有内容都是静态的,可以公开使用,但要写出所有内容: static String MY_STRING = "my string"; 看起来很乏味,加上我想把它放在地图上,有点像JSON文件: { MY_STRING: "my string" } 有没有一个简单的方法来创建一

我目前正在开发一个本地化类,它是静态的,可以在dart的应用程序的其他部分访问

我的目标是以一种简单的方式连接代码:

Localization.MY_STRING
然后它将返回:
“我的字符串”

起初,我认为本地化中的所有内容都是静态的,可以公开使用,但要写出所有内容:

static String MY_STRING = "my string";
看起来很乏味,加上我想把它放在地图上,有点像JSON文件:

{
  MY_STRING: "my string"
}
有没有一个简单的方法来创建一个静态地图,这样我就可以完成我的目标

我在想我也许可以通过定义它来覆盖

String .operator (String value){ 
  return map[value]?map[value]:"";
}

与定义
类似,您不能重写
运算符。只能重载有限的一组运算符


如果在类之外创建字段,则不需要
static
。您可以导入带有前缀的库,以获得与静态字段访问相同的语法

我想我会使用一个解释器来自动生成这个脚本文件。你可以看看
intl
包。我创建了一个dart文件,通过读取JSON文件,然后输出一个可以引用的dart文件来完成本地化所需的一切。然后,只要在运行web应用程序之前执行该结束dart文件,项目就可以使用该文件。这样,它会动态地创建一个大型静态类文件,以允许我进行
本地化。它处理一些额外的事情。支持Google translate支持的文件格式、延迟加载语言文件、多元化。。。很长一段时间我仔细观察了一下,不记得所有的细节。是的,我想看一下
intl
,但我上面的soemone说不。所以,我只是创建了一些东西作为保留,直到上级决定他们如何做。这是一个设计决定,必须使用['strKey']而不是点符号。你知道他们为什么不更接近js而做出这样的决定吗?因为strKey不是对象的属性,它只是集合的键。一个很大的区别是,在Dart中,贴图键不需要是字符串。