欢迎光临散文网 会员登陆 & 注册

Flutter学习(三)Dart符号

2023-09-26 15:44 作者:shiaouz  | 我要投稿

运算符,优先级从上到下

类成员变量定义:

1) int a; //编译报错,不加?修饰的变量不可为空,必须先初始化,或者用late修饰

2) int? a; //a是空或者整数,使用时需要判空。不判空使用需要加!,否则编译错误,

例如if(a! > 0),此时如果a为空则抛错,需要try catch处理,否则后面代码不执行

3) int a=0;//正确,可以重新赋值

4) late int a; //需要先赋值再使用,否则或抛错

5) final int a = 0; //final表示赋值一次,再次赋值会编译报错,

6) final int a;//必须在构造函数中赋值,否则编译报错

7) late final int a = 0;//懒加载定义方式,系统在使用该变量时才进行赋值。late final修饰的变量可以使用this初始化,只有final修饰的变量不可使用this。再次赋值编译报错

8) late final int a;//可以编译通过,需要先赋值再使用,否则或抛错。赋值多次编译不会报错,但是运行会报错。不推荐这种定义方式,请使用上一种方式来定义

函数变量定义:

函数中定义的变量可以直接用int a;处理和java差不多,使用时没赋值,编译器会提醒


运算符

1) a??b  // 如果a不为空,返回a,否则返回b

2) a??=b  // 如果a为空,则赋值a=b,否则不处理

3) ?.  // 定义String? s;的情况,s?.length, 如果s为空,则返回空,否则返回s.length

4) !.   // 定义String? s;的情况,s!.length, 如果s为空,则抛错,否则返回s.length

5) factory 定义构造函数,可以返回一个已存在变量

6) mixin 定义一个混入类,class A extends B with C,C为混入类



Flutter学习(三)Dart符号的评论 (共 条)

分享到微博请遵守国家法律