library

[!TIP|style:flat|iconVisibility:hidden] library指令可以创建一个库,每个Dart文件都是一个库,即使没有使用library指令来指定

  1. Dart中的库主要有三种:
    1. 我们自定义的库
      • import 'lib/xxx.dart';
    2. 系统内置库
      • import 'dart:math';
      • import 'dart:io';
      • import 'dart:convert';
    3. Pub包管理系统中的库

[!TIP|style:flat|iconVisibility:hidden]

  1. 需要在自己的项目根目录新建一个pubspec.yaml
  2. 在pubspec.yaml文件 然后配置名称丶描述丶依赖等信息
  3. 然后运行 pub get 获取包下载到本地
  4. 项目中引入库 import 'package:http/http.dart' as http; 看文档使用

自定义库

  1. 在lib目录下新建一个Animal.dart的文件
  2. 在Animal.dart文件中输入以下代码
    class Animal {
      String name;
      int age;
      Animal(this.name, this.age);
      void printInfo() {
        print("${this.name}---${this.age}");
      }
    }
    
  3. 在main.dart中引入Animal.dart文件
     import 'lib/Animal.dart';
     void main() {
       Animal a = new Animal('小狗', 2);
       a.printInfo();
     }
    

系统内置库

  1. 在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包管理系统中的库

  1. 在pubspec.yaml文件中配置名称丶描述丶依赖等信息
     name: dart_demo
     description: A new Flutter project.
     dependencies:
       http: ^0.12.0+2
     dev_dependencies:
       flutter_test:
         sdk: flutter
    
  2. 然后运行 pub get 获取包下载到本地
  3. 项目中引入库 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中库的冲突解决

  1. 当引入两个库中有相同名称标识符的时候,如果是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();
     }
    

results matching ""

    No results matching ""