美文网首页
Dart语言基础

Dart语言基础

作者: spades_K | 来源:发表于2020-01-14 16:32 被阅读0次
    void main() {
      
      var va = 100;
      // va = "更改变量"; 报错  var推断出来的类型不可更改其类型;
      
      //相当于 id 可以使用 Object 以外的方法
      dynamic a = "aaaa";
      // 只能使用 Object的方法
      Object b = "CCCC";
      print('赋值前 a ===$a b====$b');
      // 可重新赋值
      a = 100;
      b = false;
      print('赋值后 a ===$a b====$b');
      
    
      // *****方法  [] 表示可选参数  如果不指定返回值 则 返回 dynamic类型 且不会自动推断。
      String say (String from, String to, [String device]) {
      var result = '$from say $to';
      if(device != null) {
        result = '$result with a $device';
      }
      return result;
      }
    
      // ***********指定形参名字 用{} 括号*******
      void says({bool hidden, bool blod})
      {
        print('bool is $hidden blocd is $blod');
      }
     
      print(say("aaaa","bbbbbbbb"));
      // aaaa say bbbbbbbb
     
      says(hidden:true, blod:false);
      // bool is true blocd is false
    
      ///************* 异步支持 ************
      Future.delayed(new Duration(seconds: 2),(){
        print('2秒后数据回来了');
      }).then((data){
        print('结束请求');
      });
      
      /// then方法还有一个可选参数onError,我们也可以它来捕获异常
      Future.delayed(new Duration(seconds: 2), () {
          //return "hi world!";
          throw AssertionError("Error");
      }).then((data) {
          print("success");
      }, onError: (e) {
          print(e);
      });
      
      //***********Stream 常用于会多次读取数据的异步任务场景,如网络内容下载、文件读写等。
      Stream.fromFutures([
      // 1秒后返回结果
      Future.delayed(new Duration(seconds: 1), () {
        return "hello 1";
      }),
      // 抛出一个异常
      Future.delayed(new Duration(seconds: 2),(){
        throw AssertionError("Error");
      }),
      // 3秒后返回结果
      Future.delayed(new Duration(seconds: 3), () {
        return "hello 3";
      })
    ]).listen((data){
       print(data);
    }, onError: (e){
       print(e.message);
    },onDone: (){
    
    });
    
    /* 打印结果
     * I/flutter (17666): hello 1
     * I/flutter (17666): Error
     * I/flutter (17666): hello 3
     * */
    
    

    相关文章

      网友评论

          本文标题:Dart语言基础

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