Flutter学习笔记之Dart语言

1、变量声明
var 接收任何类型变量,但一旦赋值便不肯更改类型
dynamic 接收任何类型变量,赋值后可更改类型
final,const final只是要求变量在初始化后值不变,但通过final,我们无法在编译时(运行之前)知道这个变量的值;而const所修饰的是编译时常量,我们在编译时就已经知道了它的值,显然,它的值也是不可改变的。
2、函数
dart中函数可赋值给变量或者传参。
3、异步
Future 链式调用

//then:执行下一步
//delayed:延迟执行
//catchError:捕获错误
//whenComplete:无论成功失败都回调
//wait:等待多个任务都执行结束才继续
Future.wait([
  // 2秒后返回结果  
  Future.delayed(new Duration(seconds: 2), () {
    return "hello";
  }),
  // 4秒后返回结果  
  Future.delayed(new Duration(seconds: 4), () {
    return " world";
  })
]).then((data){
   //执行成功会走到这里  
   print("success");
}).catchError((e){
   //执行失败会走到这里  
   print(e);
}).whenComplete((){
   //无论成功或失败都会走到这里
});

async/await 使用同步的代码形式来执行异步任务

task() async {
   try{
    String id = await login("alice","******");
    String userInfo = await getUserInfo(id);
    await saveUserInfo(userInfo);
    //执行接下来的操作   
   } catch(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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Flutter日渐火爆,因此在进行Flutter学习前先学习一些其所使用的开发语言dart的基础,这篇文章主要学习...
    Samlss阅读 11,094评论 2 28
  • 标签(空格分隔): Dart Flutter Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型...
    黄昭鸿阅读 428评论 0 0
  • Dart的设计目标应该是既对标Java,也对标JavaScript,Dart在静态语法方面和Java非常相似,如类...
    寒桥阅读 7,002评论 3 11
  • Dart重要概念:1,在变量中可以放置的所有东西都是对象,而每个对象都是类的实例。无论数字、函数、和null都是对...
    哥哥是欧巴Vitory阅读 825评论 0 1
  • 认识片仔癀是十几年前的事了。 为什么写它呢?是因为我持有片仔癀的股票。而且它是在我刚刚进入股市,什么都不懂的时候,...
    知夏_50c1阅读 2,201评论 0 6