學習Flutter從Dart開始系列(二)之函式

2021-10-24 08:20:21 字數 1964 閱讀 4821

前一篇文章我們已經簡單介紹了dart變數的宣告以及基本的資料型別。今天我們來進一步學習一下dart的運算子和函式。

dart中的算術運算子,關係運算子和邏輯運算子與其他語言一樣,並沒有什麼特殊的地方,這裡也就不過多的闡述了,我們今天主要看一看dart中比較有特色的型別判斷運算子,條件表示式和級聯運算子。

型別判斷運算子

描述as

通常用於子型別向父型別轉換

is判斷是否是某個型別,如果是返回true

is!判斷是否不是某個型別,如果不是返回true

int i = 1;

print(i is int); \\返回true

print(i is! int); \\返回false

condition? expr1 : expr2;

如果condition為true返回expr1,否則返回expr2。

var a = 3 - 1 > 0 ? 3 : 1;

print(a); \\ 3

expr1 ?? expr2

如果expr1不為null則返回expr1,否則則返回expr2。

var isnull = null;

var a = isnull ?? 2;

print(a); \\ 2

級聯運算子 (…) 可以實現對同乙個對像進行一系列的操作。 除了呼叫函式, 還可以訪問同一物件上的字段屬性。 這通常可以節省建立臨時變數的步驟, 同時編寫出更流暢的**。

class person

person person = new person();

person..name = "joe"

..*** = "male";

需要注意的是如果返回的是void則不能使用級聯操作符

var sb = stringbuffer();

sb.write('foo')

..write('bar'); // error: 'void' 沒喲定義 'write' 函式。

dart中函式的宣告不用很嚴格,函式的引數型別和返回值型別可以省略。

main() 

sayhello()

dart中函式可以存在可選引數,可選引數就是在函式呼叫的時候可以傳入也可以不傳入的引數。可選引數要用包含,而且只能放在最後。

main() 

sayhello([name]) else

}

預設引數就是在函式宣告時就已經確定的引數,它是乙個編譯期常量。通過 = 宣告預設引數。而且要用{}。

main()                                   

function1(name, )

匿名函式顧名思義就是沒有函式名的函式,在flutter中匿名函式很常見。形如(){}。()中時函式要傳入的引數,{}中是函式體。使用起來很方便,不用先宣告然後才能呼叫。

void main() : $item');

});

如果只有一條語句,可以使用箭頭函式更加簡潔和方便。

void main() : $item');

);

在dart中函式享有很高的地位,函式也是物件,函式可以作為引數傳遞。

main()                                         

function1(name, )

sayhi(name)

main()                             

function1()

Flutter學習筆記(4) Dart函式

dart是乙個物件導向的語言,所以函式也是物件,函式屬於function物件,函式可以像引數一樣傳遞給其他函式,這樣便於做 處理 一.指定返回值的函式 判斷兩個字串是否相等 bool isequal string name1,string name2 print isequal 張三 李四 列印結果...

Flutter之Dart語言(三)

本文介紹dart的非同步程式設計。目錄 asynchrony support 非同步支援 declaring async functions 宣告非同步方法 using await expressions with futures 使用 await 表示式 dart 有一些語言特性來支援 非同步程式...

Flutter之Dart基本語法學習

宣告變數 var lll 預設值是null dynamic 宣告可以改變型別 使用final 和 const 進行修飾乙個常量 例 var number number 15 print number number 2 型別可變 print number final c 30 print c cons...