Skip to content

库与包管理

Dart 提供了强大的库和包管理机制,支持使用内置库、第三方包以及自定义库。

导入库

Dart 使用 importexport 关键字来导入和导出库。

使用 import 导入库

import 关键字用于在文件中加载其他库。

  1. 导入内置库

    Dart 提供了许多内置库,例如 dart:core(默认导入)、dart:mathdart:convert 等。

    dart
    import 'dart:math';
    
    void main() {
      print(sqrt(16)); // 使用 dart:math 中的 sqrt 函数,输出: 4.0
    }
  2. 导入本地文件

    可以导入项目中自定义的 Dart 文件。

    dart
    import 'utils.dart'; // 导入 utils.dart 文件
    
    void main() {
      greet('Dart');
    }
  3. 使用别名

    使用 as 为库指定前缀,避免命名冲突。

    dart
    import 'package:my_library/math_utils.dart' as math;
    
    void main() {
      print(math.add(5, 3)); // 调用 math_utils.dart 中的 add 方法
    }
  4. 部分导入

    使用 showhide 来导入指定部分或隐藏部分内容。

    dart
    import 'package:my_library/math_utils.dart' show add;
    import 'package:my_library/math_utils.dart' hide subtract;
    
    void main() {
      add(3, 5); // 只导入了 add 方法
    }

使用 export 导出库

export 关键字用于从一个文件中导出其他文件的内容,使其可被其他文件访问。

dart
// utils.dart
export 'math_utils.dart';
export 'string_utils.dart';

使用内置库

Dart 提供了一些常用的内置库,用于常见功能。

  1. dart:core

    • 默认导入,包含 Dart 的核心功能,如基本类型(Stringint 等)。
    dart
    void main() {
      print('Hello, Dart!');
      int num = 42;
      print(num.isEven); // true
    }
  2. dart:math

    • 包含数学相关功能,如随机数生成、三角函数等。
    dart
    import 'dart:math';
    
    void main() {
      print(pi);          // 圆周率
      print(Random().nextInt(100)); // 生成 0-99 的随机整数
    }
  3. dart:convert

    • 提供 JSON、UTF-8 编码和解码功能。
    dart
    import 'dart:convert';
    
    void main() {
      String jsonString = '{"name": "Alice", "age": 30}';
      var decoded = jsonDecode(jsonString);
      print(decoded['name']); // Alice
    
      var encoded = jsonEncode({'language': 'Dart', 'year': 2011});
      print(encoded); // {"language":"Dart","year":2011}
    }
  4. dart:io

    • 提供文件操作、网络请求等功能,仅适用于非 Web 环境。
    dart
    import 'dart:io';
    
    void main() {
      File file = File('example.txt');
      file.writeAsStringSync('Hello, Dart!');
      print(file.readAsStringSync());
    }

第三方包管理

使用 pub.dev

pub.dev 是 Dart 的官方包管理平台,可以浏览和安装第三方包。

  1. 查找包

    • 访问 pub.dev 搜索所需的包。
  2. 安装包

    • 在项目的 pubspec.yaml 文件中添加依赖。
      yaml
      dependencies:
        http: ^1.0.0
    • 使用以下命令安装:
      bash
      dart pub get
  3. 导入包

    • 安装成功后,可以在代码中导入使用。
    dart
    import 'package:http/http.dart' as http;
    
    void main() async {
      var response = await http.get(Uri.parse('https://example.com'));
      print('Response status: ${response.statusCode}');
    }

版本管理

  • 使用 ^ 表示兼容某个主版本。
  • 可以指定版本范围:
    yaml
    dependencies:
      provider: ">=5.0.0 <6.0.0"

本地包和 Git 包

  1. 本地包

    yaml
    dependencies:
      my_local_package:
        path: ../local_packages/my_local_package
  2. Git 包

    yaml
    dependencies:
      my_git_package:
        git:
          url: https://github.com/username/repository.git
          ref: main

综合示例

dart
import 'dart:math';
import 'dart:convert';
import 'package:http/http.dart' as http;

/// 生成随机数并打印
void generateRandom() {
  print(Random().nextInt(100)); // 输出 0-99 的随机整数
}

/// 发送 HTTP 请求
Future<void> fetchData() async {
  var response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));
  var data = jsonDecode(response.body);
  print(data['title']);
}

void main() {
  generateRandom();
  fetchData();
}
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!