Dart代码信息

运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,不支持键盘输入语句但是拥有更高的运行速度,输出简洁明了 。 点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
dart学习 发布于:2020-10-10 18:59 dart学习 发布于:2020-10-10 18:59 dart学习 发布于:2020-09-29 14:36 [更多]
显示目录

库和可见性

库和可见性

创建一个模块化的,可共享的代码库可以用import 和 library 指令。 库不仅提供了 API ,而且对代码起到了封装的作用: 以下划线 (_) 开头的标识符仅在库内可见。,虽然没有使用 library 指令,但每个 Dart 应用程序都是一个库 。

库可以通过包来分发。

使用库

通过 import 在一个库中引用另外一个库的文件 例如,Dart Web应用程序通常使用 dart:html库,它们可以像这样导入:

import 'dart:html';

import 参数只需要一个指向库的 URI。URI 对于内置库拥有自己特殊的dart: 方案。 对于其他的库,使用系统文件路径或者 package: 方案 。 package: 方案指定由包管理器(如 pub 工具)提供的库。例如:

import 'package:test/test.dart';

URI是统一资源标识符。 URL(统一资源定位符)是一种常见的URI。

指定库前缀

导入两个存在冲突标识符的库, 可以为这两个库,或其中一个指定前缀。 如 library1 和 library2 都有一个 Element 类,可用下面的方式处理:

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

// 使用 lib1 中的 Element。
Element element1 = Element();

// 使用 lib2 中的 Element。
lib2.Element element2 = lib2.Element();

导入库的一部分

选择需要导入的内容使用库的一部分功能。例如:

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

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

延迟加载库

让应用在需要的时候再加载库使用Deferred loading (也称 lazy loading) 。 下面是一些使用延迟加载库的场景:

  • 减少 APP 的启动时间。
  • 执行 A/B 测试,例如 尝试各种算法的 不同实现。
  • 加载很少使用的功能,例如可选的屏幕和对话框。

用 deferred as 导入,延迟加载一个库:

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

用库标识符调用 loadLibrary() 函数在需要时来加载库:

Future greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}

在前面的代码,使用 await 关键字暂停代码执行一直到库加载完成。

你可以在一个库上多次调用 loadLibrary() 函数。但它只载入一次。

注意:使用延迟加载库时:

只有库加载完毕的时候,库中常量才可以使用。延迟加载库的常量在导入的时候是不可用的。

如果你要使用类型,需把接口类型移动到另外一个库中, 让两个库都分别导入这个接口库。因为在导入文件的时候无法使用延迟库中的类型。

Dart 隐含的把 loadLibrary() 函数导入到使用 deferred as 的命名空间 中。 loadLibrary() 方法返回一个 Future。

Dart VM的区别:Dart VM允许在调用loadLibrary()之前访问延迟库的成员。这种行为可能会改变,所以不要依赖于当前的VM行为

由JSRUN为你提供的Dart在线工具
        JSRUN提供的Dart在线运行,Dart 在线编译工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

皮肤:

运行模式:

嵌入代码 iframe嵌入: