2.5、Dart语言基础:库与包

2021-12-24  本文已影响0人  双鱼子曰1987

学习笔记,旨在于快速入门和学习Dart,其中可能会有理解错误,请指出,一起学习。

系列文章

2.1、Dart语言基础:变量、运算符
2.2、Dart语言基础:函数与闭包
2.3、Dart语言基础:面向对象
2.4、Dart语言基础:异步
2.5、Dart语言基础:库与包
...

一、库基础

1、库的引用:package: scheme

// Importing core libraries。
import 'dart:math';

// Importing libraries from external packages
import 'package:test/test.dart';


// Importing files
import 'path/to/my_other_file.dart';

2、引入的时候,创建库的prefix,关键字as

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

// Uses Element from lib1.
Element element1 = Element();

// Uses Element from lib2.
lib2.Element element2 = lib2.Element();

3、限制性导入(即导入库中的一部分),关键字show/hide

// Import only foo.
import 'package:lib1/lib1.dart' show foo;

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

4、延迟加载(Lazily loading a library),一般用于web端,关键字deferred as

import 'package:greetings/hello.dart' deferred as hello;

// 可以异步使用
Future<void> greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}

二、库的实现(Implementing libraries)

Creating packages

1、库必要结构

image.png
例子:shelf的包结构
image.png

其中,对外的文件有shelf_io.dart 和 shelf.dart 两个文件。

export 'src/cascade.dart' show Cascade;
...
export 'src/middleware/add_chunked_encoding.dart' show addChunkedEncoding;
...

2、条件导入和导出,Conditionally importing and exporting library files

// lib/hw_mp.dart
export 'src/hw_none.dart' // Stub implementation
    if (dart.library.io) 'src/hw_io.dart' // dart:io implementation
    if (dart.library.html) 'src/hw_html.dart'; // dart:html implementation

上面代码的意思:
1、当import 'dart:io';时,导出文件src/hw_io.dart
2、当import 'dart:html';时,导出文件src/hw_html.dart
3、其他,导出文件src/hw_none.dart

3、包的文档化

使用工具dartdoc,前提是代码使用 '///' 进行注释。

三、包,packages

How to use packages

包的创建

包的获取,Getting packages

从包里面引用库,Importing libraries from packages

import 'package:js/js.dart' as js;
import 'package:intl/intl.dart';
transmogrify/
  lib/
    transmogrify.dart
    parser.dart
  test/
    parser/
      parser_test.dart
import 'package:transmogrify/parser.dart';

更新包依赖,Upgrading a dependency

参考

Developing packages & plugins

上一篇 下一篇

猜你喜欢

热点阅读