美文网首页
Flutter Dart 语法笔记

Flutter Dart 语法笔记

作者: calary | 来源:发表于2019-08-19 14:13 被阅读0次

    一、前言

    Dart 作为开发Flutter的语言,在平时使用中会碰到一些比较容易遗忘的用法,这里对平时使用中遇到的用法做一个笔记,用来不清楚时查看。

    二、用法笔记

    1、特殊运算符((?.)、(??=)、(??))

    Dart中的这几个运算符主要用来简化处理变量实例缺失(为null)的情况。

    • ?.运算符 上面Person类中有printInfo()方法,p 是 Person的一个可能为null的实例。那么p调用成员方法的安全代码,可以简化写为p?.printInfo(),表示p为null的时候跳过,避免抛出异常。

    • ??运算符 如果a不为null则返回a的值,否则返回b的值。在java或者C++中我们通过三元表达式 (a!=null) ? a : b 来实现。在Dart中直接可以 a ?? b。

    • ??=运算符 如果a为null,则给a赋值value,否则跳过。a ??= value。

    为了方便说明,我们定义一个类如下

    class Person {
      String name;
      int age;
      Person(this.name, this.age);
      void printInfo() {
        print('name is $name, age is $age');
      }
    }
    
    void main() {
      Person p; // p为null
      p?.printInfo(); // 避免为 null 抛出异常,可以使用 ?. 进行简写
    
      Person p1 = Person('Dart', 2);
      var a;
      var b = 'Java';
      p1.name = a ?? b;  // 如果a不为null,则值为a,否则为b
      print('name:${p1.name}');// 打印结果,name:Java
    
      a ??= 'C++'; // 如果a为null,则给a赋值
      b ??= 'C#';
      print('a:$a,b:$b'); // 打印结果,a:C++,b:Java
    }
    

    2、数字处理

    • 2.1 数字取整

      • floor(): 舍得形式,
      • round(): 四舍五入形式
      • ceil(): 入的形式
    • 2.2 字符串转数字

      • int.parse(String str): 字符串转int
      • double.parse(String str): 字符串转double
    • 数字转字符串

      • toStringAsFixed(int num):保留几位小数
      • toStringAsPrecision(int num):保留几位数,包括整数部分
    void main() {
      double pi = 3.14;
      int floor_pi = pi.floor(); // 舍
      int round_pi = pi.round(); // 四舍五入
      int ceil_pi = pi.ceil();   // 入
    
      String str = '5';
      int i = int.parse(str); // 字符串转int
      double j = double.parse(str); // 字符串转double
    
      double pi_l = 3.1415926;
      String st = pi_l.toStringAsFixed(2); // 保留两位小数
      String st2 = pi_l.toStringAsPrecision(5); // 保留几位数,包括整数部分
    
      print('''
          floor(舍): $floor_pi, 
          round(四舍五入): $round_pi,
          ceil(入): $ceil_pi;
          字符串转int:$i
          字符串转double: $j
          保留两位小数: $st
          保留5为数:$st2
      ''');
     /** 输出结果
         floor(舍): 3, 
          round(四舍五入): 3,
          ceil(入): 4;
          字符串转int:5
          字符串转double: 5.0
          保留两位小数: 3.14
          保留5为数:3.1416
    */
    }
    

    相关文章

      网友评论

          本文标题:Flutter Dart 语法笔记

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