library
[!TIP|style:flat|iconVisibility:hidden] library指令可以创建一个库,每个Dart文件都是一个库,即使没有使用library指令来指定
- Dart中的库主要有三种:
- 我们自定义的库
- import 'lib/xxx.dart';
- 系统内置库
- import 'dart:math';
- import 'dart:io';
- import 'dart:convert';
- Pub包管理系统中的库
- 我们自定义的库
[!TIP|style:flat|iconVisibility:hidden]
- 需要在自己的项目根目录新建一个pubspec.yaml
- 在pubspec.yaml文件 然后配置名称丶描述丶依赖等信息
- 然后运行 pub get 获取包下载到本地
- 项目中引入库 import 'package:http/http.dart' as http; 看文档使用
自定义库
- 在lib目录下新建一个Animal.dart的文件
- 在Animal.dart文件中输入以下代码
class Animal { String name; int age; Animal(this.name, this.age); void printInfo() { print("${this.name}---${this.age}"); } } - 在main.dart中引入Animal.dart文件
import 'lib/Animal.dart'; void main() { Animal a = new Animal('小狗', 2); a.printInfo(); }
系统内置库
- 在main.dart中引入系统内置库
import 'dart:math'; // 数学库 里面包含了很多数学的方法 比如开平方 三角函数等 import 'dart:io'; // IO库 File HttpClient Socket HttpServer import 'dart:convert'; // convert库 里面包含了很多转换的方法 比如json encode decode base64 encode decode utf8 encode decode void main() { print(min(12, 23)); // 取最小值 print(max(12, 23)); // 取最大值 print(sqrt(9)); // 开平方 print(PI); // 圆周率 print(1.0 / 0.0); // Infinity print(0.0 / 0.0); // NaN print(PI.isNaN); // 判断是否是数字 print(PI.isInfinite); // 判断是否是无穷大 print(PI.isFinite); // 判断是否是有穷大 print(PI.isNegative); // 判断是否是负数 print(PI.isEven); // 判断是否是偶数 print(PI.isOdd); // 判断是否是奇数 }
Pub包管理系统中的库
- 在pubspec.yaml文件中配置名称丶描述丶依赖等信息
name: dart_demo description: A new Flutter project. dependencies: http: ^0.12.0+2 dev_dependencies: flutter_test: sdk: flutter - 然后运行 pub get 获取包下载到本地
- 项目中引入库 import 'package:http/http.dart' as http; 看文档使用
import 'package:http/http.dart' as http; void main() async { var url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'; var response = await http.get(url); if (response.statusCode == 200) { print(response.body); } else { print('请求失败'); } }
Dart中库的冲突解决
- 当引入两个库中有相同名称标识符的时候,如果是java中,我们通过写上完整的包名路径来指定使用的具体标识符,但是在Dart中是没有包名路径的概念的,这时候可以使用as关键字来指定库的前缀
import 'package:http/http.dart' as http; import 'package:lib/Animal.dart' as lib; void main() async { var url = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'; var response = await http.get(url); if (response.statusCode == 200) { print(response.body); } else { print('请求失败'); } lib.Animal a = new lib.Animal('小狗', 2); a.printInfo(); }