dynamic、?、?.、!.、??
1.dynamic
void main() { // 动态类型 类似ts的any dynamic 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'); }
浙公网安备 33010602011771号