7

我刚刚升级了我的 Dart 编辑器 (0.5.16_r23799),没有错误/警告的代码不再存在。

class Fubar {
  const BAR = 1000000;  
  Fubar(){   
  }
}

const以有标记和此消息开头的行:

只有静态字段可以声明为 'const'

我读了这个ch02-final-const,那里什么都没有。

这篇文章dart-const-static-fieldsconst modifier implies static,如果我们不能使用constwithout static,我们应该使用final?...但是我错过了什么文档/帖子?打算这样做:

Fubar f = new Fubar();
some = f.BAR;
4

1 回答 1

6

这是6 月 4 日 Dart 语言设计会议的笔记中的最新更改:

常量实例变量

Gilad 的观点是,除了作用域之外,它们应该像静态一样工作。但显然,它使实例元数据的 VM 实现变得复杂。三种解决方案:

  1. 没有 const 实例字段。
  2. 元数据是静态范围的。
  3. 尝试正确地做到这一点。

Lars 喜欢 1。我说 1 为用户简化了事情。现在,人们对 static final const 等感到困惑。Gilad 对 1 没问题。

我问语法是“静态常量”还是只是“常量”?当必须对常量进行“静态”处理时,用户会感到困惑。

Lars 说他们很困惑,因为他们不了解这个系统。要求“静态”将帮助他们了解正在发生的事情。

于 2013-06-12T20:45:36.817 回答