Dart

作者: 海东青_fb7a | 来源:发表于2021-03-13 11:49 被阅读0次
  • assert(5 / 2 == 2.5); // 结果是双浮点型
  • assert(5 ~/ 2 == 2); // 结果是整型
  • assert(5 % 2 == 1); // 余数
使用 as 运算符将对象强制转换为特定类型。 通常,可以认为是 is 类型判定后,被判定对象调用函数的一种缩写形式
if (emp is Person) {
  // Type check
  emp.firstName = 'Bob';
}

(emp as Person).firstName = 'Bob';
 将值赋值给变量a
a = value;
 如果b为空时,将变量赋值给b,否则,b的值保持不变。
b ??= value;

A?.B
如果 A 等于 null,那么 A?.B 为 null
如果 A 不等于 null,那么 A?.B 等价于 A.B
  • condition ? expr1 : expr2
    如果条件为 true, 执行 expr1 (并返回它的值): 否则, 执行并返回 expr2 的值。
    expr1 ?? expr2
    如果 expr1 是 non-null, 返回 expr1 的值; 否则, 执行并返回 expr2 的值。
如果赋值是根据布尔值, 考虑使用 ?:
var visibility = isPublic ? 'public' : 'private';

如果赋值是基于判定是否为 null, 考虑使用 ??
String playerName(String name) => name ?? 'Guest';
  • 捕获语句中可以同时使用 on 和 catch ,也可以单独分开使用。 使用 on 来指定异常类型, 使用 catch 来 捕获异常对象。
try {
  breedMoreLlamas();
} on OutOfLlamasException {
  // 一个特殊的异常
  buyMoreLlamas();
} on Exception catch (e) {
  // 其他任何异常
  print('Unknown exception: $e');
} catch (e) {
  // 没有指定的类型,处理所有异常
  print('Something really unknown: $e');
}
  • 如果仅需要部分处理异常, 那么可以使用关键字 rethrow 将异常重新抛出。
void misbehave() {
  try {
    dynamic foo = true;
    print(foo++); // Runtime error
  } catch (e) {
    print('misbehave() partially handled ${e.runtimeType}.');
    rethrow; // Allow callers to see the exception.
  }
}

void main() {
  try {
    misbehave();
  } catch (e) {
    print('main() finished handling ${e.runtimeType}.');
  }
}
  • 枚举中的每个值都有一个 index getter 方法, 该方法返回值所在枚举类型定义中的位置(从 0 开始)。 例如,第一个枚举值的索引是 0 , 第二个枚举值的索引是 1。
enum Color { red, green, blue }

使用枚举的 values 常量, 获取所有枚举值列表( list )。

List<Color> colors = Color.values;
assert(colors[2] == Color.blue);
assert(Color.red.index == 0);
- List , Set 和 Map 
var names = <String>['Seth', 'Kathy', 'Lars'];
var uniqueNames = <String>{'Seth', 'Kathy', 'Lars'};
var pages = <String, String>{
  'index.html': 'Homepage',
  'robots.txt': 'Hints for web robots',
  'humans.txt': 'We are people, not machines'
};
  • 限制泛型类型
    使用泛型类型的时候, 可以使用 extends 实现参数类型的限制
class Foo<T extends SomeBaseClass> {
  // Implementation goes here...
  String toString() => "Instance of 'Foo<$T>'";
}
  • import 'package:lib1/lib1.dart';
    import 'package:lib2/lib2.dart' as lib2;
// 使用 lib1 中的 Element。
Element element1 = Element();

// 使用 lib2 中的 Element。
lib2.Element element2 = lib2.Element();

相关文章

网友评论

      本文标题:Dart

      本文链接:https://www.haomeiwen.com/subject/rzgvgktx.html