dart语言的学习

官网

dart的中文官网
dart语言概览
dart语言使用风格

重要的几个点

默认值

未初始化的变量默认值是 null,即使变量是数字 类型默认值也是 null,因为在 Dart 中一切都是对象,数字类型 也不例外。

final 和const的不同之处

官网并没有很详细,以下链接比较清楚明白
final 和const区别

=>在命名函数和匿名函数中的表现

在命名函数中

isNoble(atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}
等价于
bool isNoble(int atomicNumber) => _nobleGases[atomicNumber] != null;

=> expr 语法是 { return expr; } 的简写。 => 符号 有时也被称为 箭头 语法。注意expr 是表达式而不是语句

在匿名函数中,(有时候也被称为 lambda 或者 closure)
这个=>并不是代表return的意思,仅仅是一种简写,当匿名函数只有一条语句, 可以使用箭头简写。

list.forEach((item) {
  print('${list.indexOf(item)}: $item');
});

等价简写
list.forEach(
    (item) => print('${list.indexOf(item)}: $item'));

assert

如果 assert 语句中的布尔条件为 false , 那么正常的程序执行流程会被中断。 在本章中包含部分 assert 的使用, 下面是一些示例

// 确认变量值不为空。
assert(text != null);

// 确认变量值小于100。
assert(number < 100);

// 确认 URL 是否是 https 类型。
assert(urlString.startsWith('https'));

assert 语句只在开发环境中有效, 在生产环境是无效的; Flutter 中的 assert 只在 debug 模式 中有效。 开发用的工具,例如 dartdevc 默认是开启 assert 功能。 其他的一些工具, 例如 dart 和 dart2js, 支持通过命令行开启 assert : --enable-asserts。

assert 的第二个参数可以为其添加一个字符串消息。

assert(urlString.startsWith('https'),
    'URL ($urlString) should start with "https".');

其他容易忘记的:

  1. 类型检查
    as, is, 和 is! 运算符用于在运行时处理类型检查.
    使用 as 运算符将对象强制转换为特定类型
(emp as Person).firstName = 'Bob';
  1. 使用 = 为变量赋值。 使用 ??= 运算符时,只有当被赋值的变量为 null 时才会赋值给它。

  2. 条件表达式
    condition ? expr1 : expr2
    如果条件为 true, 执行 expr1 (并返回它的值): 否则, 执行并返回 expr2 的值。
    expr1 ?? expr2
    如果 expr1 是 non-null, 返回 expr1 的值; 否则, 执行并返回 expr2 的值。

  3. ?.的用法
    A 是一个类 userId是它的一个属性
    A?.userId 的含义就是,当A不为空的时候才执行A.userId的取值操作,否则不进行。相当于进行了一个null的校验。

  4. 当定义的时候用到了?
    例如 String? x;
    这里面的意思是定义了一个String 类型的x的变量,但是这个x可以为空值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值