Dart新特性

Dart2.13后的新特性Null safety,late关键字,空类型声明符?,非空断言!,required关键字

空安全(Null safety)

帮助开发者避免一些日常开发中很难被发现的错误,并且额外的好处是改善性能。
? 可空类型
!类型断言

在这里插入图片描述
在这里插入图片描述

如图可以看出当我们直接给赋空值时会报错,点击快速修复后在int后加了一个?,表示a是一个可空类型,可以赋值为空

void main() {
  int? a = 123;
  a = null;
  print(a);
}

在这里插入图片描述
同理也可在方法返回值类型后加?表示返回值可以为null

类型断言

在这里插入图片描述
如图当我们给一个可空类型的字符串赋空值打印时会有警告信息,点击快速修复会在str后加!

void main() {
  printLength(null);
}

void printLength(String? str) {
  try {
    print(str!.length);
  } catch (e) {
    print('为null');
  }
}

在这里插入图片描述

late关键词

用于延迟初始化
在这里插入图片描述
点击快速修复后,在属性前添加了late关键词

class Person {
  late String name;
  late int age;
  setName(String name, int age) {
    this.name = name;
    this.age = age;
  }
  void getInfo() {
    print("$name----$age");
    print("Person1:${this.name}----${this.age}");
  }
}
void main() {
  Person p = new Person();
  p.setName("张三", 20);

}

required关键词

主要用于允许根据标记任何命名参数(函数或类),使得它们不为空
在这里插入图片描述
由图可以看出,命名参数没有赋初值时会报错,点击快速修复,可以在String前加required,表示这是一个必须传入的参数

String printInfo(String name, {int age = 0, required String sex}) {
  if (age != 0) {
    return "姓名:$name---性别:$sex---年龄:$age";
  }
  return "姓名:$name---性别:$sex---年龄保密";
}

void main() {
  String str = printInfo("张三", age: 20, sex: "男");
  print(str);
}

在这里插入图片描述

总结

由于前面知识点是跟着B站教程学习,自己所用的Dart版本比较新,跟B站教程上面有一些不一样,比如上面的空安全,还late,required关键字等,在没有学习这一节之前,遇到类似问题我都是直接在变量类型后面加?,了解了Dart新特性之后才对前面遇到的问题有了一定的认识。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值