1. Dart基礎概述
開發(fā)Flutter項目時主要使用的Dart語言,Dart是谷歌開發(fā)的計算機編程語言,后來被ECMA(ECMA-408)認定為標準 。它被用于web迹炼、服務器、移動應用和物聯(lián)網(wǎng)等領(lǐng)域的開發(fā)塘偎。它是寬松開源許可證(修改的BSD證書)下的開源軟件疗涉。
Dart語言中一切都可以被認為是對象拿霉,它是單繼承的吟秩。可以轉(zhuǎn)譯為JavaScript绽淘,同時支持接口(interfaces)涵防、混入(mixins)、抽象類(abstract classes)沪铭、具體化泛型(reified generics)壮池、可選類型(optional typing)和sound type system。
2. 創(chuàng)建dart文件并執(zhí)行
在Android Studio中創(chuàng)建一個flutter項目杀怠,在test目錄中椰憋,新建test.dart文件,輸入代碼
main(){
print("Hello World");
}
在代碼空白處赔退,右鍵橙依,執(zhí)行“Run test.dart”
下方控制臺可以看到運行結(jié)果
文件中main()方法可以理解為C語言或Java語言中的main方法证舟,是整個程序的入口方法,print()方法的用途是將其中的參數(shù)打印在控制臺上窗骑。
3. 注釋
Dart語言的注釋有三種女责,與Java類似,分別是
- 單行注釋
使用//表示單行注釋
//這是注釋
print("這是代碼"); //注釋
- 多行注釋
使用/* ... */表示多行注釋
/*
* 多行注釋
* 測試
*/
print("這是代碼");
- 文檔注釋
使用///表示單行文檔注釋
使用/** ... */表示多行文檔注釋
///這是單行文檔注釋
print("這是代碼");
/**
* 這是多行文檔注釋
* 這是多行文檔注釋
*/
print("這是代碼");
文檔注釋可以通過dartdoc指令導出HTML格式的API文檔创译,生成位置項目\doc\api
目錄中
4. 關(guān)鍵字
- 關(guān)鍵字(33個):作為語法使用抵知,不能用作標識符
關(guān)鍵字 | ||||
---|---|---|---|---|
assert | break | case | catch | class |
const | continue | default | else | enum |
extends | false | final | finally | for |
if | in | is | new | null |
rethrow | return | switch | superdo | this |
throw | true | try | typedef | var |
void | while | with |
- 內(nèi)置標識符(17個):系統(tǒng)已經(jīng)聲明使用的標識符
內(nèi)置標識符 | ||||
---|---|---|---|---|
abstract | as | covariant | deferred | dynamic |
export | external | factory | get | implements |
import | library | operator | part | set |
static | typedef |
- Dart2新增異步關(guān)鍵字(6個)
異步關(guān)鍵字 | |||||
---|---|---|---|---|---|
async | async* | await | await* | yield | yield* |
5. 變量
可以使用var,Object软族,dynamic這三個關(guān)鍵字來聲明變量
-
使用var聲明變量并初始化
var表示類型推斷刷喜,當?shù)谝淮问褂媚撤N數(shù)據(jù)類型為變量初始化后,變量的類型就得到確認互订,不能再賦值為其他類型的變量
正確示例:
var s = 23;
s = 12;
print(s); //12
錯誤示例: s="趙四"報錯“A value of type 'String' can't be assigned to a variable of type 'int'”吱肌。大意為:String類型數(shù)據(jù)不能賦值給已推斷類型為int類型的變量
var s = 23;
s = "趙四"; //報錯:A value of type 'String' can't be assigned to a variable of type 'int'
print(s);
-
使用Object聲明變量并初始化
Object類型為所有類型的基類,可以指代任何類型仰禽,所以可以重新賦值為新的類型數(shù)據(jù)
Object s = 23;
s = "趙四";
print(s); //趙四
-
使用dynamic聲明變量并初始化
dynamic表示動態(tài)類型氮墨,可以在編程過程中改變變量類型,所以可以重新賦值為新的類型數(shù)據(jù)
dynamic s = 23;
s = "趙四";
print(s); //趙四
除了使用上述三種推斷和動態(tài)類型聲明變量外吐葵,也可以使用具體的類型聲明變量规揪,這樣程序在處理時更易于控制。詳情請參照《第3章數(shù)據(jù)類型》
6. 常量
在Dart語言中温峭,使用final或const來表示常量猛铅,在聲明常量時,可以使用Object凤藏,dynamic或者具體的類型進行常量定義奸忽,也可以省略類型直接利用final或const關(guān)鍵字定義常量。
聲明常量時揖庄,不能使用var關(guān)鍵字
常量一旦初始化后栗菜,不可重新賦值
final Object s1 = 1;
final dynamic s2 = 1;
final int s3 = 1;
final s4 = 1;
const Object s1 = 1;
const dynamic s2 = 1;
const int s3 = 1;
const s4 = 1;