Dart学习笔记(二十)

52 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 

Dart Async Await

async 和 await

 

1.  只有async方法才能使用await关键字调用方法

1.  如果调用别的async方法必须使用await关键字

 

-   async让方法变成异步

-   await等待异步方法执行完成

异步方法

 


textAsync() async{

 

    return 'Hello Async';

 

}

 

 

 

void main() async {

 

    var result = await textAsync();

 

    print(result); // Hello Async

 

}

Dart 库的重命名 冲突解决

冲突解决

 

当引入两个库中有相同名称标识符的时候,如果是java通常我们通过写上完整的包名路径来指定使用的具体标识符,甚至不用import都可以,但是Dart里面是必须import的。当冲突的时候,可以使用as关键字来指定库的前缀。如下例子所示:

 

import 'package:lib1/lib1.dart';

 

import 'package:lib2/lib2.dart' as lib2;

 

Element element1 = new Element(); // Uses Element from lib1.

 

lib2.Element element2 = new lib2.Element(); // Uses Element from lib2.

 

新建lib文件夹 —— 新建文件 Person.dart

 


class Person {

  String name = "张三";

  int age = 20;

  // 构造函数

  Person(this.name, this.age);

  void printInfo() {

    print("${this.name}------${this.age}");

  }

}

新建lib文件夹 —— 新建文件 Person1 .dart

 


class Person {

  String name = "张三";

  int age = 20;

  // 构造函数

  Person(this.name, this.age);

  void printInfo() {

    print("Person1: ${this.name}------${this.age}");

  }

}

主文件

 


import 'lib/Person.dart';

 

import 'lib/Person1.dart' as lib;

 

 

void main(List<String> args) {

 

    Person p1 = new Person('张三', 22);

 

    p1.printInfo(); // 张三------22

 

 

    lib.Person p2 = new lib.Person('李四', 22);

 

    p2.printInfo(); // Person1: 李四------22

 

}

Dart 库部分导入

部分导入

 

如果只需要导入库的一部分,有两种模式:

 

模式一:只导入需要的部分,使用show关键字,如下例子所示:

 

import 'package:lib1/lib1.dart' show foo;

 

模式二:隐藏不需要的部分,使用hide关键字,如下例子所示:

 

import 'package:lib2/lib2.dart' hide foo;

 

 

新建lib文件夹 —— 新建MyMath.dart文件

 


void getName() {

  print('张三');

}

 

void getAge() {

  print(22);

}

 

void getSex() {

  print('男');

}

主文件

 


import 'lib/MyMath.dart' show getName;

 

void main() {

 

    getName();

 

}