Dart11.引入库

libraries.dart

//import 'dart:math'; //载入核心库

//import 'package:dio/dio.dart'; //载入第三方库

//import 'mylib1.dart' as lib1; //载入文件
//import 'mylib2.dart' as lib2; //如果两个库有冲突的标识符,可以为其中一个或两个库都指定前缀

//import 'mylib1.dart' as lib1 show Test; //只载入库的某些部分
//import 'mylib2.dart' as lib2 hide Test; //筛选掉库的某些部分

//import 'mylib1.dart' deferred as lazyLib; //延迟载入

//import 'mylib/mylib.dart';//载入自定义库

void main() {
  //使用核心库
//  print(sqrt(4));

  //调用第三方库
//  getHttp();

  //载入文件
//  var myLib1 = lib1.MyLib();
//  var myLib2 = lib2.MyLib();

  //选择性载入
//  var test = lib1.Test();
//  var lib = lib2.MyLib();

  //延迟载入
//  lazyLoad();

  //载入自定义库
//  printMyLib();
//  printUtil();
//  printTool();
}
//调用第三方库
//void getHttp() async {
//  try {
//    Response response = await Dio().get("https://www.baidu.com");
//    print(response);
//  } catch (e) {
//    print(e);
//  }
//}

//延迟载入
//可提高程序启动速度
//用在不常使用的功能
//用在载入时间过长的包
//lazyLoad() async {
//  await lazyLib.loadLibrary();
//  var t = lazyLib.Test();
//  t.test();
//}

mylib1.dart

class MyLib {
  String name;
  static MyLib _cache; //工厂构造函数无法访问 this。所以这里要静态的

  factory MyLib([String name = 'singleton']) =>
      MyLib._cache ??= MyLib._newObject(name);

//定义一个命名构造函数用来生产实例
  MyLib._newObject(this.name);
}

class Test {
  void test() => print('Test');
}

test(){

}

mylib2.dart

class MyLib{
  String name;
  static MyLib _cache; //工厂构造函数无法访问 this。所以这里要静态的

  factory MyLib([String name = 'singleton']) =>
      MyLib._cache ??= MyLib._newObject(name);

//定义一个命名构造函数用来生产实例
  MyLib._newObject(this.name);
}

class Test{
  void test() => print('Test');
}

猜你喜欢

转载自blog.csdn.net/augfun/article/details/106866873