美文网首页
[flutter]1、基本语法

[flutter]1、基本语法

作者: 史记_d5da | 来源:发表于2021-10-17 22:18 被阅读0次

    1、number

    // dart的数据类型
    void numType() {
      var a = 1;
      double b = 0;
      int c = 9;
      print(c.isEven);
      print(c.isOdd);
      print(a + b);
    }
    

    2、string

    void stringDemo() {
      var a = "sj";
      print(a + "aa");
      // 多行
      var b = "sss\n"
      "ccc\n"
      "ddd";
      print(b);
    
      // 三引号
      String str1 = '''sss
      aaa
      ddd''';
      print(str1);
      int c = 10;
      int d = 20;
      print('c + d = ${c + d}');
      String str2 = "Hello\nWorld"; // 换行
      String str3 = r"Hello\nWorld"; // r去除转义,直接打印
      print(str2);
      print(str3);
    }
    

    3、list

    void listDemo() {
      // 创建可变list
      var list1 = [1,2,3,"sj"];
      print(list1[3]);
      list1[3] = "zh";
      print(list1[3]);
      // 不可变list
      var list2 = const[1,2,3];
      print(list2);
      var list3 = ["china", "american", "japan"];
      list3.insert(1, "carian");
      list3.remove("american");
      list3.clear();
      print(list3);
      var list4 = [1,4,2,6,5,3];
      list4.sort();
      print(list4);
      print(list4.sublist(4,7));
    }
    

    4、map

    void mapDemo() {
      // 可变的map
      var json1 = {'one': 'chinese', 'two': 'english'};
      print(json1['one']); // 取值
      json1['one'] = 'cn';
      // 不可变的map
      var json2 = const {'one': 'chinese', 'two': 'english'};
      print(json2.length);
      print(json2.values);
      print(json2.keys);
      var list = ['china', 'england', 'japan'];
      print(list.asMap());// {0: china, 1: england, 2: japan}
    }
    

    5、运算符

    void operatorDemo() {
      var a;
      // 当a为空 a赋值为10,否则不赋值
      a ??= 10; // 10
      a ??= 5; // 10
      print(a);
    
      var b;
      b = 5;
      // 如果左边有值,返回左边,否则返回右边
      print(b ?? a);
    }
    

    6、函数

    /*
    * Dart中的方法
    * 方法也是一个对象
    * 返回值和参数类型可以省略
    * 当方法的执行语句只有一句的时候,可以使用箭头函数 => 表达式
    * 可选参:传递参数的时候必须带上形参的名字
    * 匿名方法:没有方法名
    * */
    void functionDemo() {
      print(sum(10, 20));
      print(sum1(1, b: 3));
      print(sum2(1, 2, 3));
      var func = () {
        print("匿名方法");
      };
      func();
      // 立即执行匿名函数
      ((){
        print("立即执行");
      })();
      // 匿名方法作为参数
      var list = [1,2,3,4];
      forEachDemo(list, (var a) {
        b++;
        print('元素$b = $a');
      });
    
    }
    sum(a,b) => a + b;
    // b,c可选参
    // b, c必须是可选类型
    // 或者 sum1(int a, {int? b, int? c})
    sum1(int a, {b, c}) {
      b ??= 0;
      c ??= 0;
      return a - b + c;
    }
    // 默认值基于位置传递的
    // 调用时可以不加名称
    int sum2(int a, [int b = 0, int c = 0]) {
      return a + b + c;
    }
    forEachDemo(List list, void func(var element)) {
      for (var e in list) func(e);
    }
    int b = 0;
    printElement(var a) {
      b ++;
      print('元素$b = $a');
    }
    void functionDemo1() => print("Hello World");
    

    7、闭包

    /*
    * 闭包 closure
    * 定义在函数里面的函数就是闭包,闭包也是一个对象。
    * 闭包的作用:可以访问外部函数的局部变量。
    * */
    void closureDemo() {
      var func = funA();
      func(); // 0
      func(); // 1
      func(); // 2
    }
    funA() {
      int count = 0;
      // 匿名函数为闭包
      // 并且持有局部变量 count
      return ()=>print(count ++);
    }
    

    相关文章

      网友评论

          本文标题:[flutter]1、基本语法

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