0 說明
該系列教程主要是為有一定語言基礎(chǔ) C/C++的程序員,快速學(xué)習(xí)一門新語言所采用的方法,屬于在C/C++基礎(chǔ)上擴展新語言的模式。
1 自定義庫 & 系統(tǒng)自定義庫
引入代碼如下所示:
import 'xxx.dart'; //自定義庫引入,xxx為本地路徑
import 'dart:async'; //系統(tǒng)庫引入
2 第三方庫引入(Pub包管理系統(tǒng))
一般從官方網(wǎng)站:Page 1 | Top packages中 搜索需要的第三方庫,打開項目中的配置文件,名為:pubspec.yaml,找到dependencies選項,這里以ffi庫引入為例,搜索到后點進去,進入installing 選項下,對應(yīng)的dependencies配置添加到本地中,配置文件參考如下:
dependencies:
ffi: ^2.0.2
之后執(zhí)行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 = calloc<Uint8>();
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 Pointer<Utf8> charPointer = myString.toNativeUtf8();
print('First byte is: ${charPointer.cast<Uint8>().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() {
//報錯,因為清楚調(diào)用的是哪一個庫文件里定義的Exec類
Exec e = new Exec();
}
C++是使用namespace命名空間來解決,實際上Dart中也使用類似的思想來解決該問題,那就是as關(guān)鍵字給引用到的庫重命名,參考如下:文章來源:http://www.zghlxwxcb.cn/news/detail-630430.html
import 'package:dart_demo/demo1.dart';
import 'package:dart_demo/demo2.dart' as lib;
main() {
Exec e = new Exec(); //demo1中Exec
lib.Exec e = new lib.Exec(); //demo2中Exec
}
4 庫的局部導(dǎo)入與局部屏蔽
這里的導(dǎo)入分兩種方式,一種是通過關(guān)鍵字show引入部分可用方法,一種是通過hide關(guān)鍵字隱藏不可用方法,代碼參考如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-630430.html
//表示只可以使用demo1.dart庫文件中的fun1()方法
import 'demo1.dart' show fun1;
//表示不可以使用demo2.dart庫文件中的fun2()方法
import 'demo2.dart' hide fun2;
到了這里,關(guān)于Flutter Dart語言(04)庫操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!