面向Kotlin与Java开发者的Dart快速入门(四)操作符、运算符

Dart入门教程 同时被 2 个专栏收录
15 篇文章 0 订阅
31 篇文章 1 订阅

在这里插入图片描述

?操作符


与Kotlin一样,使用?.在方法调用的同时进行判空

List<dynamic> list = null;
list?.add(3);    // list为null则add不会调用

算数操作符


与Java大体相同,区别仅在于除法运算:

  • Java没有专门的除法运算符, /表示取模运算
  • Dart中使用 ~/ 表示取模,/表示除法 ,返回double
int div = 4 ~/ 2;      // 2
div = 4 / 2;           // 返回double类型,编译异常

类型判断


与Kotlin相同,相当于Java的instanceof

bool isHoge = h is Hoge;
bool isNotHoge = h is! Hoge;   // == !(h is Hoge)

类型转换


类似Kotlin的Smart Cast

if (p is Person) {
    print(p.firstName);
}

Elvis操作符


类似Kotlin的 ?: ,Dart中是??

var b = a ?? "hoge";

若a为null则赋值”hoge“,Kotlin好像没有对应的功能。。。

a ??= "hoge";

级联操作符(..)


Strictly speaking, the “double dot” notation for cascades is not an
operator. It’s just part of the Dart syntax.

严格意义上 级联(..)不能算操作符,是Dart的语法。
级联允许对同一个对象进行连续操作,相当于Kotlin作用域函数的apply

querySelector('#confirm') // Get an object.
  ..text = 'Confirm' // Use its members.
  ..classes.add('important')
  ..onClick.listen((e) => window.alert('Confirmed!'));
/*
上面代码相当于:
var button = querySelector('#confirm');
button.text = 'Confirm';
button.classes.add('important');
button.onClick.listen((e) => window.alert('Confirmed!'));
*/

借助()可以嵌套加里奥

final addressBook = (AddressBookBuilder()
      ..name = 'jenny'
      ..email = 'jenny@example.com'
      ..phone = (PhoneNumberBuilder()
            ..number = '415-555-0100'
            ..label = 'home')
          .build())
    .build();


返回首页:Dart入门教程

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值