0
点赞
收藏
分享

微信扫一扫

Dart语言入门学习-泛型和库(六)

泛型
对于 List 或 Set 只需要在声明语句前加 前缀, 对于 Map 只需要在声明语句前加 <keyType, valueType> 前缀

var names = <String>['Seth', 'Kathy', 'Lars'];//list类型
var uniqueNames = <String>{'Seth', 'Kathy', 'Lars'};//set类型
var pages = <String, String>{//map类型
'index.html': 'Homepage',
'robots.txt': 'Hints for web robots',
'humans.txt': 'We are people, not machines'
};

库和可见性
以下划线 (_) 开头的标识符仅在库内可见。如果导入两个存在冲突标识符的库, 则可以为这两个库或者其中一个指定前缀。 例如,如果 library1 和 library2 都有一个 Element 类, 那么可以通过下面的方式处理:

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

// 使用 lib1 中的 Element。
Element element1 = Element();

// 使用 lib2 中的 Element。
lib2.Element element2 = lib2.Element();

如果只使用库的一部分功能,可以选择需要导入的内容

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

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

延迟加载库
要延迟加载一个库,需要先使用 deferred as 来导入:

import 'package:greetings/hello.dart' deferred as hello;

当需要使用的时候,使用库标识符调用 loadLibrary() 函数来加载库:

Future greet() async {
await hello.loadLibrary();
hello.printGreeting();
}

Dart 隐含的把 loadLibrary() 函数导入到使用 deferred as 的命名空间 中。 loadLibrary() 方法返回一个 Future。


举报

相关推荐

0 条评论