如果你不想更改变量的值,那么你可以用 final 和 const:
final content = 'Dart 语法';
static const bool switchOn = false;
需要注意的点
-
使用
final
和const
的时候可以把var
省略,但并不是final
和const
也是基本的声明变量类型。 -
final
和const
变量只能赋值一次,而且必须在声明的时候就赋值
⚠️
在定义const常量时,你必须直接赋一个字面量,而不能是一个变量或者公式;
在定义final常量时,如何赋值就无所谓了,但赋值后就不能再改了。 -
const
是隐式的final
-
在使用
const
的时候,如果变量是类里的变量,必须加static
,是全局变量时不需要加,例如:
import 'package:flutter/material.dart';
const demoConst = 'demo'; // 这里不用加 static
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
static const content = 'Dart 语法'; // 这里必须加 static
...
}
疑问:final
和 const
有什么区别呢?
const
是编译时常量,在编译的时候就初始化了,但是 final
变量是运行时才初始化。
网友评论