Flutter中的组件分为statelesswidget和statefullwidget,statelesswidget不记录用户的的状态,主要传入的是不变得数据,statefulwidget有状态的widget,主要用于改变widget的状态setstate
注解 @immutable 是不可变的 定义在widget中的数据一定是不可变的,需要使用final来修饰
StatelessWidget无所谓,因为它里面的数据通常是直接定义完后就不修改的
Flutter将StatefulWidget设计成两个类,我们通常会按照如下格式来做
一个类继承自Statefulwidget,作为widget树的一部分
一个类继承自State,用于记录StatefulWidget会变化的状态,并且根据状态的状态的变化,构建出
新的widget
Fluttet之类型推导,类型推导格式如下
var/dynamic/const/final 变量名称 = 赋值
dart中的runtimeType用于获取变量当前的类型
final是在编译期间就确定下来的
final 赋值时,动态获取的,比如赋值给一个函数
const是不可以赋值为DateTime.now()
final一旦被赋值后就有确定的结果,不会再次赋值
在Dart语言中,const放在赋值语句的右边,可以共享对象,提高性能
final a = const Person();
数值类型,我们也不必关心是否有赋值,也不必关心数据的精度和宽度问题
整数用Int,浮点数用double 就行了,他们取值范围不是固定的,取决与运行的