前言
在 Flutter 中有两种定义常量的方式,一种是 final
,一种是 const
。而在性能优化的很多文章中,都会建议将子组件尽可能地用 const
声明。那么,const
到底做了什么能够起到优化性能的目的?本篇我们就来解密 Flutter 的 const
关键字。
核心定义
const 声明的变量是在编译时确定的,永远不会改变。也就是说编译器提前就知道了该如何存储这个变量的值。例如下面使用 const 声明的变量 a 就是编译时就确定了它的值一直是1。
const int a = 1;
同时,Flutter 对于 const
声明的变量可以自动推断变量的类型。
const name = '岛上码农';
那么为什么不用 final
呢?final
声明的变量也是不可更改的。这里有个区别在于final 声明的变量允许声明后再赋值,赋值后不可改变。比如我们声明 final 类型的变量时,可以先不赋值,甚至可以通过构造函数来初始化。
final int a;
a = 1;
// 构造方法
class FinalDemo {
final name;
FinalDemo({required this.name});
}
这说明 final 声明的