Dart 中的 Null-aware (null感知运算符)

来到这篇文章, 说明你一定想在Dart的语法上更进一步(不出意外的话, 你在学Flutter🤭🤭). 本篇文章就来讲讲Dart语言中的Null-aware(null感知运算符)吧!

背景

Dart的Null-aware来自于Dart 1.12正式版本:在这里插入图片描述

你也可以看看官网版本介绍

用途

存在即是合理. 既然有这样的新运算符, 说明它在一定程度上节省了我们的代码, 使代码更加简洁.

既然它被称为Null-aware, 说明这个运算符是专门用于处理null的. 将会提供空指针的相关操作.

在这里插入图片描述

创建示例对象

我们来创建一个Person对象, 方便后续使用:

class Person{
  // 性别
  String gender;
  
  // 变更性别为女性
  void changeToFemale(){
    gender = "女性";
  }
}

Person person = Person();

??

当前者为null时, 返回后者.

exp ?? anotherExp

实例: 获取用户性别

当某个Person对象的gender(性别)属性为null时, 返回’未知’:

方法一: 基础IF语句

我们可以用最基础的语句来写:

String gender;
if(person.gender!=null){
	gender = person.gender;
}else{
	gender = '未知';
}
方法二: 三目运算

三目运算符相当好用:

String gender = person.gender!=null ? person.gender : '未知';

一行搞定, 比if爽太多.

最佳方案: ??运算符

使用刚学的??运算符处理:

String gender = person.gender ?? '未知';

简洁爆了.

??=

若obj为null, 把value赋值给obj.

obj ??= value

实例: 默认性别

若Person对象的gender属性为null, 为其赋值为"男性".

这里就不举笨方法了, 直接上:

person.gender ??= "男性";

?.

当obj不为null时, 调用method函数:

obj?.method()

实例: 变更性别

当person不为null时, 变更性别为女性:

person?.changeToFemale();

收工!

若你跟随教程一切顺利, 那么恭喜你, 你又掌握了节省寿命的新方法!

感谢

结语

原文链接. 如果有任何问题, 欢迎在下方回复或者讨论.

更多技术干货, 欢迎访问我的官网阿航的技术小站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值