戳这里了解《Flutter入门与实战》专栏,持续更新、系统学习!
前言
我们写 Dart 代码的时候,变量和类成员天天用,但是用的方式一定对吗?恐怕未必,本篇我们来介绍变量和类成员该如何合理使用。
规则1:局部变量使用 var和 final 的方式要保持一致
对于大部分局部变量,无需指定类型,而应该是使用 var
或 final
,应该从下面的两条规则中选择一条:
- 对于不会重复赋值的使用
final
,其他的使用var
。这个其实看似很容易遵循,但是编写的时候很容易忽略。一个经验就是,优先使用final
,如果发现后面需要重新赋值的时候再使用var
。 - 对于局部变量,只使用
var
,即便是那些不会重新赋值的局部变量,也就是对于局部变量不使用final
。注意,这里的局部变了指的是函数内部的局部变量,类的成员变量当然可以使用final
修饰。这一条更容易遵循一些。
一旦你选择了上面中的一条,那么应该一直遵循下去,要不有强迫症的码农看到你的代码后会肯定会冒出一堆问题 —— “大佬,这里为什么用 final?这里为什么又不用 final?”估计最后尴尬的你只能“呃……”,然后找个理由搪塞过去了。
规则2:不要存储那些计算变量
计算变量是指可以通过别的类成员计算出来的属性。当你存储的时候,会导致很多问题,比如你可能需要在各个关联属性变更的地方埋点更新这个计算变量,一旦遗漏就会出现 bug。例如下面的例子就是一个典型的反面例子。
// 错误示例
class Circle {
double radius;
double area;
double circumference;
Circle(double radius)
: radius = radius,
area = pi * radius * radius,
circumference = pi * 2.0 * radius;
}