从const String声明const String

时间:2015-02-13 07:13:29

标签: dart

const String IP_ADDRESS = "http://192.168.1.103:8088/";
const String HOME_EXPECTED = IP_ADDRESS + "index.html";

此代码从Dart编辑器返回意外错误消息。 An expression of type 'num' was expected 为什么?我该如何解决?

我尝试使用'final','final const'和static。但失败了:(

2 个答案:

答案 0 :(得分:3)

<强>更新

http://dartbug.com/15853

  

所以String + String是一个常量(已经有一段时间了)。 String * int不是也不应该是。

我创建了http://dartbug.com/22408

<强>原始

在Dart中,如何构建consts是非常有限的。 String上的+运算符不是用于const创建的白名单。

请改为尝试:

const String HOME_EXPECTED = "${IP_ADDRESS}index.html";

final String HOME_EXPECTED = IP_ADDRESS + "index.html";

如果不需要const。

答案 1 :(得分:2)

我不知道这种语言'Dart'但是看着语言描述,用'const'来实现你想要的东西是不可能的:

  

对要成为编译时常量的变量使用const。如果const变量在类级别,则将其标记为static const。 (实例变量不能是常量。)在声明变量的地方,将值设置为编译时常量,例如文字,常量变量或常数上的算术运算结果。

你的第二个变量声明不是文字,是对另一个const变量的简单赋值,也不是这样的算术运算。

来源: https://www.dartlang.org/docs/dart-up-and-running/ch02.html