Dart自定义库、系统库和第三方库

/*

前面介绍Dart基础知识的时候基本上都是在一个文件里面编写Dart代码的,但实际开发中不可能这么写,模块化很重要,所以这就需要使用到库的概念。

在Dart中,库的使用时通过import关键字引入的。

library指令可以创建一个库,每个Dart文件都是一个库,即使没有使用library指令来指定。

Dart中的库主要有三种:

    1、我们自定义的库
          import ‘lib/xxx.dart‘;
    2、系统内置库
          import ‘dart:math‘;
          import ‘dart:io‘;
          import ‘dart:convert‘;
    3、Pub包管理系统中的库
        https://pub.dev/packages
        https://pub.flutter-io.cn/packages
        https://pub.dartlang.org/flutter/

        1、需要在自己想项目根目录新建一个pubspec.yaml
        2、在pubspec.yaml文件 然后配置名称 、描述、依赖等信息
        3、然后运行 pub get 获取包下载到本地
        4、项目中引入库 import ‘package:http/http.dart‘ as http; 看文档使用

*/

导入本地库

import ‘lib/Animal.dart‘;
main(){
  var a=new Animal(‘小黑狗‘, 20);

  print(a.getName());
}
class Animal{
  String _name;   //私有属性
  int age;
  //默认构造函数的简写
  Animal(this._name,this.age);

  void printInfo(){
    print("${this._name}----${this.age}");
  }

  String getName(){
    return this._name;
  }
  void _run(){
    print(‘这是一个私有方法‘);
  }

  execRun(){
    this._run();  //类里面方法的相互调用
  }
}

导入系统内置的库

// import ‘dart:io‘;
import "dart:math";
main(){

    print(min(12,23));

    print(max(12,25));

}
import ‘dart:io‘;
import ‘dart:convert‘;

void main() async{
  var result = await getDataFromZhihuAPI();
  print(result);
}

//api接口: http://news-at.zhihu.com/api/3/stories/latest
getDataFromZhihuAPI() async{
  //1、创建HttpClient对象
  var httpClient = new HttpClient();
  //2、创建Uri对象
  var uri = new Uri.http(‘news-at.zhihu.com‘,‘/api/3/stories/latest‘);

  //3、发起请求,等待请求
  var request = await httpClient.getUrl(uri);
  //4、关闭请求,等待响应
  var response = await request.close();
  //5、解码响应的内容
  return await response.transform(utf8.decoder).join();
}

说明:

/*
async和await
  这两个关键字的使用只需要记住两点:
    只有async方法才能使用await关键字调用方法
    如果调用别的async方法必须使用await关键字

async是让方法变成异步。
await是等待异步方法执行完成。

*/

void main() async{
  var result = await testAsync();
  print(result);

}

//异步方法
testAsync() async{
  return ‘Hello async‘;
}

导入第三方库

/*
pub包管理系统:

1、从下面网址找到要用的库
        https://pub.dev/packages
        https://pub.flutter-io.cn/packages
        https://pub.dartlang.org/flutter/

2、创建一个pubspec.yaml文件,内容如下

    name: xxx
    description: A new flutter module project.
    dependencies:
        http: ^0.12.0+2
        date_format: ^1.0.6

3、配置dependencies

4、运行pub get 获取远程库

5、看文档引入库使用
*/
import ‘dart:convert‘ as convert;
import ‘package:http/http.dart‘ as http;
import ‘package:date_format/date_format.dart‘;

main() async {
  // var url = "http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1";

  //   // Await the http get response, then decode the json-formatted responce.
  //   var response = await http.get(url);
  //   if (response.statusCode == 200) {
  //     var jsonResponse = convert.jsonDecode(response.body);

  //     print(jsonResponse);
  //   } else {
  //     print("Request failed with status: ${response.statusCode}.");
  //   }

    print(formatDate(DateTime(1989, 2, 21), [yyyy, ‘*‘, mm, ‘*‘, dd]));

}

Dart库的重命名 Dart冲突解决

/*
1、冲突解决
当引入两个库中有相同名称标识符的时候,如果是java通常我们通过写上完整的包名路径来指定使用的具体标识符,甚至不用import都可以,但是Dart里面是必须import的。当冲突的时候,可以使用as关键字来指定库的前缀。如下例子所示:

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

    Element element1 = new Element();           // Uses Element from lib1.
    lib2.Element element2 = new lib2.Element(); // Uses Element from lib2.

*/

import ‘lib/Person1.dart‘;
import ‘lib/Person2.dart‘ as lib;

main(List<String> args) {
  Person p1=new Person(‘张三‘, 20);
  p1.printInfo();

  lib.Person p2=new lib.Person(‘李四‘, 20);
  p2.printInfo();

}

部分到导入:

/*
部分导入
  如果只需要导入库的一部分,有两种模式:
     模式一:只导入需要的部分,使用show关键字,如下例子所示:
      import ‘package:lib1/lib1.dart‘ show foo;
     模式二:隐藏不需要的部分,使用hide关键字,如下例子所示:
      import ‘package:lib2/lib2.dart‘ hide foo;
*/

// import ‘lib/myMath.dart‘ show getAge;

 import ‘lib/myMath.dart‘ ;

void main(){
  getName();

}

延迟加载

/*
延迟加载

    也称为懒加载,可以在需要的时候再进行加载。
    懒加载的最大好处是可以减少APP的启动时间。

    懒加载使用deferred as关键字来指定,如下例子所示:

    import ‘package:deferred/hello.dart‘ deferred as hello;

    当需要使用的时候,需要使用loadLibrary()方法来加载:

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

*/

原文地址:https://www.cnblogs.com/loaderman/p/11027076.html

时间: 2024-11-10 15:30:39

Dart自定义库、系统库和第三方库的相关文章

基于MFC的Media Player播放器的制作(2---导入第三方库和介绍第三方库)

|   版权声明:本文为博主原创文章,未经博主允许不得转载. 这一节我们介绍如何导入类库,和介绍类库的一功能和介绍MFC的一些主要的模块部分.下面是如何导入类库.第一步我们选中 Media Player的控件(也就是刚才的那个黑黑的窗口),按下快捷键Ctrl+W就会进入下面的窗口,具体操作看下图: 如上图:Ctrl + W后,选择 Member Variables,找到 IDC_OCX1,然后单击 Add Variables,出现弹出框后点击确定. 确定之后,又会弹出一个弹出框,如上图,上面的弹

Python 标准库、第三方库

Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写.网络抓取和解析.数据连接.数清洗转换.数据计算和统计分析.图像和视频处理.音频处理.数据挖掘/机器学习/深度学习.数据可视化.交互学习和集成开发以及其他Python协同数据工作工具. 为了区分不同对象的来源和类型,本节将在描述中通过以下方法进行标识: [Python内置函数]:Python自带的内置函数.函数无需导入,直接使用.

iOS开发笔记 - 用CocoaPods管理第三方库

在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确配置这些第三方库会非常的繁琐,还好我们有CocoaPods来做这件事情,就如同在Java的世界里有Maven和Gradle,当然Maven的作用不仅仅是第三依赖库管理.通过CocoaPods工具我们可以为项目添加被称为"Pods"的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本. ??CocoaPods意义体现在两个方面.第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段

安装wordcloud第三方库Unable to find vcvarsall.bat

前言 本来想要使用python爬一些数据的,制作词云,感觉挺好玩的,不过python安装第三方库的时候遇到了一些问题,有的问题比较好解决,有的就找了好久才知道怎么解决的,故记录下来. 环境 系统:win7_64: python:python3.5.2-amd64 问题 不可避免的,需要使用到wordcloud这个库,但是安装的时候一直出现各种问题: 安装第三方库的方法 一般,python安装第三方库是在安装目录C:\Users\Administrator\AppData\Local\Progra

Android JNI如何调用第三方库

http://www.2cto.com/kf/201504/388764.html Android JNI找不到第三方库的解决方案 cannot load library 最近做一个jni项目,拿到的so库需要用jni封装一层,等于是在jni的C++代码里调用第三方库的方法,然后整个项目在Android上运行出结果. 自己用jni生成的so是libaa.so 使用的第三方库是libbb.so. 到目前为止,遇到的问题是libbb各种找不到.libbb库去哪儿了? E/AndroidRuntime

Python安装第三方库的4种方法

Python安装第三方库的4种方法 1.使用pip 大多数库都可以通过pip安装,安装方法为,在命令行窗口输入:pip install libName libName     -   为库名 某些库通过pip安装不了,可能是因为没有打包上传到pypi中,可以下载安装包之后离线安装,方法是:pip install libPath libPath  -   为本地安装包地址,这些安装包一般以whl为后缀名.表示python扩展包的windows环境下的二进制文件.有一个专门下载这种文件的地方http

Webpack 4.X 从入门到精通 - 第三方库(六)

在开发的时候会时常用到第三方的库或者框架,比如耳熟能详的jquery.借助它们能提高开发效率,但是如何在webpack中使用呢.这篇文章介绍两个东西,如何使用第三方库以及如何提取第三方库. 使用第三方库 1.在入口文件当中直接导入 安装jQuery npm i jquery -S 目录结构如图: package.json内容如下: { "name": "webpack-demo", "version": "1.0.0", &q

055 Python第三方库安装

目录 一.概述 二.看见更大的Python世界 2.1 Python社区 2.1.1 PyPI 2.1.2 实例:开发与区块链相关的程序 2.2 安装Python第三方库 三.第三方库的pip安装方法 3.1 pip安装方法 四.第三方库的集成安装方法 4.1 集成安装方法 五.第三方库的文件安装方法 5.1 文件安装方法 5.2 实例:安装wordcloud库 六.单元小结 一.概述 看见更大的Python世界 第三方库的pip安装方法 第三方库的集成安装方法 第三方库的文件安装方法 二.看见

Android UI开源组件库BottomView ,第三方自定义UI控件

这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 实现功能: 可以在底部弹出的View里自定义布局: 可以自定义是否可以触摸外部消失: 可以自定义事件: 可以自定义外围背景是否透明: 可以自定义动画: 如果需要的话,可以强制为顶部View显示 BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055 BottomView的Demo下载地址: