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。但失败了:(
答案 0 :(得分:3)
<强>更新强>
所以String + String是一个常量(已经有一段时间了)。 String * int不是也不应该是。
<强>原始强>
在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