【问题标题】:Why only static fields can be declared as 'const'?为什么只能将静态字段声明为“const”?
【发布时间】:2013-06-12 20:38:23
【问题描述】:

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

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

const 开头的行有标记和这条消息:

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

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

这篇帖子dart-const-static-fieldsconst modifier implies static,如果我们不能在没有static 的情况下使用const,我们应该使用final 来代替?...但是我错过了什么文档/帖子?打算这样做:

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

【问题讨论】:

    标签: dart dart-editor


    【解决方案1】:

    这是与Notes From the June 4 Dart Language Design Meeting 相关的最近更改:

    常量实例变量

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

    1. 没有 const 实例字段。
    2. 元数据是静态范围的。
    3. 尽量做到正确。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2016-08-28
      • 2011-10-13
      • 2011-04-04
      • 1970-01-01
      • 2014-05-12
      • 2021-02-11
      相关资源
      最近更新 更多