dart 导入库的那些小事

418 阅读3分钟

导入的那些关键字

import

是 Dart 中用于引入外部库或文件的关键字,它的作用是将其他 Dart 文件或库中的代码引入到当前文件中,以便在当前文件中使用这些代码。

例子

假设有一个包含以下代码的 Dart 文件 example.dart

dartCopy code
// File: example.dart
class ExampleClass {
  void exampleMethod() {
    print('This is an example method.');
  }
}

你可以在另一个 Dart 文件中通过 import 引入这个文件:

dartCopy code
// File: main.dart
import 'example.dart';

void main() {
  ExampleClass exampleObject = ExampleClass();
  exampleObject.exampleMethod();
}

export

是 Dart 中用于将库的部分或全部内容公开给其他库的关键字。通过使用 export,你可以创建可重用的库,并使其内容能够被其他 Dart 文件或库引用。

例子

假如一个文件名为index


export 'module.dart';
export 'main.dart';

在许个文件中同时用到main 和 module就不用分开导入 直接

import 'index.dart';

就可以使用这两个文件的内容 节省代码也使导入操作更好管理

part

part 用于在一个 Dart 文件中引入另一个 Dart 文件,将它们合并成一个库。这个文件通常包含了库的一部分实现。

例子

  • // File: library.dart
    library my_library;
    
    part 'part_file.dart';
    
    void main() {
      print(greet('Alice'));
    }
    
  • 在这个例子中,library.dart 使用了 part 关键字引入了另一个文件 part_file.dartpart_file.dart 文件包含了库的一部分实现。

part of

part of 用于标识一个文件是库的一部分

例子

  • // File: part_file.dart
    part of my_library;
    
    String greet(String name) {
      return 'Hello, $name!';
    }
    
  • 在这个例子中,part_file.dart 使用了 part of my_library;,表明它是 my_library 这个库的一部分

通过使用 partpart of,你可以将一个大的库拆分成多个文件,每个文件负责实现库的一部分功能。这提高了代码的可维护性,使团队协作更加灵活,同时也降低了单个文件变得庞大和难以管理的风险。

as

在 Dart 中,as 关键字用于给导入的库或模块起一个别名。这个别名可以在代码中使用,使得代码更简洁,避免与其他可能有相同名称的库发生冲突。

例子


import 'library_or_file.dart' as alias;

其中,library_or_file.dart 是你要导入的 Dart 文件或库的路径,而 alias 是你为该库起的别名

hide

在 Dart 的 import 语句中,hide 关键字用于选择性地隐藏导入的库中的一些部分,以避免它们在当前文件中可见。这对于避免命名冲突或仅导入所需的部分非常有用。

例子

import 'library_or_file.dart' hide Name1, Name2;

其中,library_or_file.dart 是你要导入的 Dart 文件或库的路径,而 Name1, Name2 是你要在当前文件中隐藏的内容的名称。

show

在 Dart 的 import 语句中,show 关键字用于选择性地导入库中的一些部分,以指定只有这些部分在当前文件中可见。只导入所需的特定内容,而不是整个库。

例子

import 'library_or_file.dart' show Name1, Name2;

其中,library_or_file.dart 是你要导入的 Dart 文件或库的路径,而 Name1, Name2 是你要在当前文件中显示可见的内容的名称。

library

在 Dart 中,library 是用于声明一个 Dart 文件是一个库(library)的关键字。

例子

library library_name;

// 该库的内容(类、函数、变量等)在这里定义

其中,library_name 是库的名称,它是一个唯一标识符,通常与文件名或文件夹名相关。其他 Dart 文件可以使用 import 语句引入这个库,并使用其中的内容。

deferred

deferred 是 Dart 中用于实现延迟加载。延迟加载允许你在需要的时候再加载某个库,而不是在程序启动时立即加载,一般用不到 ,在web中使用 在使用 deferred 时,必须使用 await 来确保库在被使用之前已经加载完毕。

例子

import 'library_or_file.dart' deferred as alias;

其中,library_or_file.dart 是你要导入的 Dart 文件或库的路径,而 alias 是你为该导入的库指定的别名。