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