Flutter类里面使用const声明变量报错

在Flutter的class类里面直接声明const变量是会报错,如下:

class aaa {
  const a = 1;
}
class MyApp extends StatelessWidget {
    const a = 1;
}
无论是普通类还是继承类都会报错
Only static fields can be declared as const.
Try declaring the field as final, or adding the keyword 'static'.dart(const_instance_field)

必须让前面添加static 如果添加之后 在别的子类里面又没法调用了 哪位大佬给个明白的解释### 问题描述

阅读 4.9k
3 个回答
新手上路,请多包涵

写在类外部就行了,例如:
aClass.dart

const kSomeValue = '';

class AClass {
}

个人习惯把所有常量都放到一个单独的dart文件里,需要的地方引用就行了。

把const改成final

static:用于修饰成员变量,这个变量是属于类的,而不是属于对象的,除此之外没有其他别的含义了,static 变量直到运行期被使用时才会实例化。
final:用于修饰变量,表示单赋值(single-assignment),使用final修饰的变量必须进行初始化,一旦被赋值之后,不能够再次被赋值,否则编译会报错。(编译阶段是不知道明确值的。)
const 修饰编译时常量,我们在编译时就已经知道了它的值了。
so.如果是公共常量定义在类的外部最合理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题