Dart 語言學習 08
Author : ScorpioDong
1. 接口
接口定義任何實體必須遵守的語法。接口定義了一組對象可用的方法。
Dart沒有聲明接口的語法。類聲明本身就是Dart中的接口。
類應該使用implements關鍵字來使用接口。實現類必須提供已實現接口的所有功能的具體實現。換句話說,類必須重新定義它希望實現的接口中的每個函數。
main(List<String> args) {
// 使用接口A的對象引用實現接口A的C類對象
A obj1 = new C();
obj1.aTest();
// 使用接口B的對象引用實現接口B的C類對象
B obj2 = new C();
obj2.bTest();
}
// 定義接口A
class A {
void aTest() {}
}
// 定義接口B
class B {
void bTest() {}
}
// 定義類C實現接口A和B
class C implements A, B {
// 重寫A接口方法
@override
void aTest() {
print("aTest");
}
// 重寫B接口方法
@override
void bTest() {
print("bTest");
}
}
執行
aTest
bTest
2. 包
包是一種封裝一組編程單元的機制。應用程序有時可能需要集成某些第三方庫或插件。每種語言都有一種機制來管理外部軟件包,如Maven或Gradle for Java
,Nuget for .NET
,npm for Node.js
等。Dart的軟件包管理器是Pub
。
託管軟件包的存儲庫可以在 https://pub.dartlang.org/ 找到。
包元數據在文件pubspec.yaml
中定義。YAML是一種可讀行高,用來表達數據序列化的格式。
Pub
工具可用於下載應用程序所需的所有各種庫。
pubspec.yaml
文件的內容應該如下所示:
name: TestApp
version: 0.0.1
description: A Simple Application.
dependencies:
xml: ^3.7.0
pub工具的包源在國外,可能存在獲取失敗的情況,這裏可以使用清華大學開源鏡像站提供的鏡像源。
echo 'export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"' >> ~/.bashrc
終端執行 pub get
,保證pubspec.yaml
文件在當前路徑。
❯ pub get
Resolving dependencies... (4.3s)
+ charcode 1.1.3
+ collection 1.14.12
+ convert 2.1.1
+ meta 1.1.8
+ petitparser 3.0.1
+ typed_data 1.1.6
+ xml 3.7.0
Downloading xml 3.7.0...
Downloading petitparser 3.0.1...
Downloading convert 2.1.1...
Downloading charcode 1.1.3...
Downloading meta 1.1.8...
Downloading typed_data 1.1.6...
Downloading collection 1.14.12...
Changed 7 dependencies!
依賴包獲取成功,就可以在代碼文件頭部中引用該包了。
import 'package:xml/xml.dart' as xml;
pub常用命令
命令 | 描述 |
---|---|
pub get |
獲取應用所需依賴包 |
pub upgrade |
將所有依賴升級到較新的版本 |
pub build |
用於構建您的web應用,將創建一個構建文件夾,包含所有相關腳本 |
pub help |
提供pub命令的幫助 |