函式是可讀,可維護和可重用程式碼的構建塊。函式是一組用於執行特定任務的語句。函式將程式組織成邏輯程式碼塊。一旦定義,可以呼叫函式來存取程式碼。這使得程式碼可以重用。此外,函式可以輕鬆讀取和維護程式的程式碼。
函式宣告告訴編譯器函式的名稱,返回型別和引數。函式定義提供函式的實際主體。
編號 | 函式 | 描述 |
---|---|---|
1 | 定義函式 | 函式定義指定特定任務的執行方式。 |
2 | 呼叫函式 | 必須呼叫函式才能執行它。 |
3 | 函式返回值 | 函式也可以將值與控制一起返回給呼叫者。 |
4 | 引數化函式 | 引數是一種將值傳遞給函式的機制。 |
當函式執行時不需要強制傳遞引數時,可使用可選引數。通過在其名稱後附加問號,可以將引數標記為可選。可選引數應設定為函式中的最後一個引數。
在Dart中有三種可選引數 -
編號 | 函式 | 描述 |
---|---|---|
1 | 可選的位置引數 | 要指定可選的位置引數,請使用方括號[] 。 |
2 | 可選的命名引數 | 與位置引數不同,必須在傳遞值時指定引數的名稱。花括號{} 可用於指定可選的命名引數。 |
3 | 帶有預設值的可選引數 | 預設情況下,還可以為函式引數指定值。但是,這些引數也可以顯式傳遞值。 |
遞迴是一種通過對函式自身重複呼叫直到它到達結果來迭代操作的技術。當需要使用迴圈內的不同引數重複呼叫相同的函式時,最好應用遞迴。
範例
void main() {
print(factorial(6));
}
factorial(number) {
if (number <= 0) {
// termination case
return 1;
} else {
return (number * factorial(number - 1));
// function invokes itself
}
}
執行上面範例程式碼,得到以下結果 -
720
Lambda函式是表示函式的簡潔機制。這些函式也稱為箭頭函式。
語法
[return_type]function_name(parameters)=>expression;
範例
void main() {
printMsg();
print(test());
}
printMsg()=>
print("hello");
int test()=>123;
// returning function
執行上面範例程式碼,得到以下結果 -
hello 123