库与可见性
导入库
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() {}
}