dynamic、?、?.、!.、??
1.dynamic
void main() {// 动态类型 类似ts的anydynamic a = 1;print(a);a = 'hello';print(a);a = 1.5;print(a);// 与var的区别是,var第一次定义后,不能再改变类型var b = '111';b.toInt();print(b); }
2.?、?.、!.、??
void main() {// 可空类型 类似ts的?String? a = null;print(a);// 安全调用运算符 类似ts的?.// 程序判断有可能为null,直接.length会报错,使用?.可以避免报错print(a?.length);// 非空断言运算符 类似ts的!// 开发者认为a一定不为null,使用!.断言避免报错print(a!.length);// 空合并运算符 类似ts的??// 如果a为null,返回默认值'hello'print(a ?? 'hello'); }
