美文网首页
14.Dart-2.13后的新特性Non-nullable, N

14.Dart-2.13后的新特性Non-nullable, N

作者: 你的胡霸霸 | 来源:发表于2022-11-27 19:22 被阅读0次

    import '1.first.dart';

    /**

    * Flutter2.2.0之后的版本都要求使用null safety

    * 其实和swift差不多

    *

    * ? 可空类型

    *

    * !类型断言

    *

    *

    *

    * late 关键字主要用于延迟初始化

    *

    *

    *

    */

    main(List<String> args) {

      // 通过?定义一个可空类型,这样在才能给a=null, 新版本都要这样写了

      int? a = 10;

      print("a = $a");

      a = null;

      print("a = $a");

      List<String>? l = ["1", "2", "3"];

      print("l = $l");

      l = null;

      print("l = $l");

      var le = getData("哈喽");

      print("str.length = $le");

      // ! 类型断言

      String? s = null;

      // print(s!.length); //这样会抛出一个异常, 因为此刻值是null

      Person p = new Person("张三", 20);

      print("${p.name},${p.age}");

      String sss = printInfo("李四", age: 20, score: 100);

      print("sss = $sss");

      sss = printInfo1("王五");

      print("sss = $sss");

    }

    // 函数返回一个可空类型

    int? getData(String? str) {

      try {

        var l = str!.length;

        return l;

      } catch (e) {

        return null;

      }

    }

    // 在2.13之后需要给属性初始化, 延迟初始化值,就需要late前置声明

    class Person {

      late String name;

      late int age;

      Person(this.name, this.age);

      get des {

        return this.name + "," + this.age.toString();

      }

      set setDes(String name) {

        this.name = name;

      }

    }

    //require

    // 最开始@required是注解

    // 现在作为内置修饰符

    // 主要用于允许根据需要标记任何命名参数(函数或类),是他们不为空

    // 下面代码命名参数, 本来是可以可选的传入,加了required就是必须传入的

    String printInfo(String name, {required int age, required double score}) {

      if (age != 0) {

        return "$name, $age, $score";

      } else {

        return "$name";

      }

    }

    // 下面这样也可以, 直接给可选参数一个默认值, 就不会报错了

    String printInfo1(String name, {int age = 0, double score = 0.0}) {

      if (age != 0) {

        return "$name, $age, $score";

      } else {

        return "$name";

      }

    }

    相关文章

      网友评论

          本文标题:14.Dart-2.13后的新特性Non-nullable, N

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