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