Skip to content

import

语法仅仅是编程语言的一部分,如果不支持代码引入,那么编程语言将无法高效地被投入实际生产。
Dart 提供了一个外部代码引入的能力,利用这个能力,我们可以节省大量开发时间。
上文多次用到的 print 函数就是一个 Dart 核心库 dart:core 中的函数,我们可以使用 import 关键字来引入需要的代码:

1
2
import 'dart:core';
print('Then, I can print something.')

利用 import 关键字引入其他框架中的代码

对于 dart:core 这样的核心库,其实并不需要显式地主动用 import 关键字引入它,Dart 会默认把它引入当前的上下文中。
对于非核心库,如果使用随机数类 Random 时,才需要使用 import 关键字将包含此类的 dart:math 库导入当前的执行环境中。
下面列举一些经常使用的库,方便查阅:

1
2
3
4
import 'dart:async';  // 异步 API,例如,对 Future 和 Stream 对象的支持
import 'dart:math';   // 数学计算相关的 API,如随机数生成函数
import 'dart:convert'; // 数据 (如 JSON、UTF-8) 相关的类型转换
import 'dart:io';      // 磁盘 IO 相关的 API

利用 as 关键字防止外部框架冲突

import 关键字会默认将代码包中的代码展开在当前上下文中,这样会引发命名冲突问题。
例如,a 库和 b 库中都有函数 func,如果使用 import 关键字同时引用这两个库,就会导致编译器无法确定具体使用哪个库中的函数而报错。
因此,需要在导入的时候对 a、b 库进行区分。
在 Dart 中,我们可以使用 as 关键字对代码库进行重命名,利用 alias.func 的方式,就可以区分开两个库的函数,进而正确地找到函数并调用。示例代码如下:

1
2
import 'a' as a;
import 'b' as b;