Dart新语法尝试

void main(List<String> arguments) {
  print(NullSafe().setValue(1));
  NullSafe().printName();
  // 同时给多个变量初始化并赋值,第一个变量为null
  var name, age = 28;
  print('name: $name, age: $age');

  // 数组拆包
  var list = [
    9,
    if (name == null) ...[1, 2, 3]
  ];
  print(list);
  // 和Python类似的数组生成式
  var array = [
    for (int i in [1, 2, 3, 4])
      if (i % 2 != 0) i
  ];
  print(array);
}

class NullSafe<T> {
  // late 延迟初始化
  late T value;
  String? name;

  T setValue(T newValue) {
    value = newValue;
    return value;
  }

  void printName() {
    // 避空运算符:为空赋值
    name ??= 'null safe';
    // 条件属性访问:为空返回null
    print(name?.length);
    // 为空报错
    print(name!.length);
  }
}

上一篇:flutter开发, 当StatefulWidget的子widget的类相同时,页面无法切换的问题


下一篇:函数进阶