Skip to content

库与可见性

导入库

dart
// 核心库
import 'dart:math';
import 'dart:async';
import 'dart:convert';

// 包导入
import 'package:http/http.dart';

// 相对导入
import 'utils/helpers.dart';

库前缀

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

void main() {
  print(math.pi);
  lib1.someFunction();
  lib2.someFunction();
}

选择性导入

dart
// 仅导入特定成员
import 'dart:math' show pi, sqrt;

// 导入除特定成员外的所有内容
import 'dart:math' hide cos, sin;

创建库

dart
// math_utils.dart
library math_utils;

const double pi = 3.14159;

double circleArea(double radius) {
  return pi * radius * radius;
}

// 私有(不导出)
double _internalHelper() {
  return 42.0;
}

导出库

dart
// my_library.dart
library my_library;

export 'src/utils.dart';
export 'src/models.dart';
export 'src/services.dart' show ServiceA, ServiceB;

Part 和 Part Of

dart
// main_library.dart
library main_library;

part 'part1.dart';
part 'part2.dart';

// part1.dart
part of main_library;

void function1() {
  print('函数 1');
}

// part2.dart
part of main_library;

void function2() {
  print('函数 2');
}

可见性

dart
// 公共 - 随处可访问
class PublicClass {}

// 私有 - 仅在库内
class _PrivateClass {}

class MyClass {
  int publicField = 0;
  int _privateField = 0;
  
  void publicMethod() {}
  void _privateMethod() {}
}

下一步