城市焦点商城网站建设案例,建立什么网站,设计师 网站 贵,教你如何做网络营销推广0 说明
该系列教程主要是为有一定语言基础 C/C的程序员#xff0c;快速学习一门新语言所采用的方法#xff0c;属于在C/C基础上扩展新语言的模式。
1 自定义库 系统自定义库
引入代码如下所示#xff1a;
import xxx.dart; //自定义库引入#xff0c;xxx为本…0 说明
该系列教程主要是为有一定语言基础 C/C的程序员快速学习一门新语言所采用的方法属于在C/C基础上扩展新语言的模式。
1 自定义库 系统自定义库
引入代码如下所示
import xxx.dart; //自定义库引入xxx为本地路径
import dart:async; //系统库引入
2 第三方库引入Pub包管理系统
一般从官方网站Page 1 | Top packages中 搜索需要的第三方库打开项目中的配置文件名为pubspec.yaml找到dependencies选项这里以ffi库引入为例搜索到后点进去进入installing 选项下对应的dependencies配置添加到本地中配置文件参考如下
dependencies:ffi: ^2.0.2
之后执行pub get 命令获取该第三方库到本地。接下来就可以引入使用了参考example编写代码如下所示
import dart:ffi; //引入的第三方库头文件
import package:ffi/ffi.dart;//引入的第三方库头文件//该部分来自三方库ffi的example demo
void main() {// Allocate and free some native memory with calloc and free.final pointer callocUint8();pointer.value 3;print(pointer.value);calloc.free(pointer);// Use the Utf8 helper to encode zero-terminated UTF-8 strings in native memory.final String myString ;final PointerUtf8 charPointer myString.toNativeUtf8();print(First byte is: ${charPointer.castUint8().value});print(charPointer.toDartString());calloc.free(charPointer);
}
3 库的冲突解决
如果我们引用了两个库文件demo1.dart和demo2.dart,这两个库文件中都有对exec类的定义那么直接使用exec方法肯定会报错如下所示
import package:dart_demo/demo1.dart;
import package:dart_demo/demo2.dart;main() {//报错因为清楚调用的是哪一个库文件里定义的Exec类Exec e new Exec();
}
C是使用namespace命名空间来解决实际上Dart中也使用类似的思想来解决该问题那就是as关键字给引用到的库重命名参考如下
import package:dart_demo/demo1.dart;
import package:dart_demo/demo2.dart as lib;main() {Exec e new Exec(); //demo1中Execlib.Exec e new lib.Exec(); //demo2中Exec
}
4 库的局部导入与局部屏蔽
这里的导入分两种方式一种是通过关键字show引入部分可用方法一种是通过hide关键字隐藏不可用方法代码参考如下
//表示只可以使用demo1.dart库文件中的fun1()方法
import demo1.dart show fun1; //表示不可以使用demo2.dart库文件中的fun2()方法
import demo2.dart hide fun2;