自定義方法
? 自定義方法的基本格式:
返回類型 方法名稱(參數(shù)1漓帚,參數(shù)2,...){
方法體
return 返回值;
}
可傳參數(shù)的方法
基本可傳參數(shù)方法
void sum(int a, int b){ // 定義需要傳多個參數(shù)讼昆,用英文,隔開
print(a + b);
}
sum(2,4);
參數(shù)返回值
int sum(int a, int b){
return a + b;
}
print(sum(2,4));
不同于OC,方法體內(nèi),若不寫return列荔,定義了有返回值的函數(shù),會默認返回 null枚尼,即:
int sum(int a, int b){
}
print(sum(2,4)); // 這樣打印出來的結(jié)果就是 null
定義參數(shù)可選
利用[]贴浙,來定義可選參數(shù)。
String student(String name, [int age, int studentId]){ // 在中括號內(nèi)的參數(shù)署恍,即為可選參數(shù)崎溃,可傳可不傳
return '姓名:$name, 年齡:$age, 學號:$studentId';
}
print(student('張三')); // 這樣打印結(jié)果為:姓名:張三, 年齡:null, 學號:null
定義帶默認值的參數(shù)
直接在定義參數(shù)后面加入需要的默認值,在調(diào)用時不傳參數(shù)盯质,就會自動給參數(shù)賦默認值袁串。
String student(String name, [int age = 20, int studentId]){
return '姓名:$name, 年齡:$age, 學號:$studentId';
}
print(student('張三')); // 這樣打印結(jié)果為:姓名:張三, 年齡:20, 學號:null
定義函數(shù)參數(shù)命名
利用 {},將調(diào)用時需要命名的參數(shù)定義在{}內(nèi)呼巷,那么調(diào)用時囱修,則需要在傳參時給參數(shù)傳入相同的參數(shù)名稱,否則會報錯王悍。例:
String student(String name, {int age = 20}){
return '姓名:$name, 年齡:$age';
}
print(student('張三', age:30));
將方法作為參數(shù)
將方法作為函數(shù)參數(shù)傳值破镰,例:
//方法1
func1(){
print('func1');
}
//方法2
func2(func){
func1();
}
//調(diào)用func2這個方法 把func1這個方法當做參數(shù)傳入
func2(func1);
箭頭函數(shù)
箭頭函數(shù)只能寫一句話,不能寫多句話,不用填加分號結(jié)尾鲜漩。例:
List list=['string1','string2','string3'];
// 使用 forEach 遍歷 list 內(nèi)的元素
list.forEach((value){
print(value);
});
// 改為箭頭函數(shù)
// 第一種
list.forEach((value)=>print(value));
// 第一種
list.forEach((value)=>{
print(value)
});
自執(zhí)行方法
不用函數(shù)調(diào)用源譬,可以自執(zhí)行的方法。例:
// 沒有參數(shù)的自執(zhí)行方法
((){
print('自執(zhí)行方法');
})();
// 定義帶參數(shù)的自執(zhí)行方法
((String str){
print(str);
print('帶參數(shù)的自執(zhí)行方法');
})('我是傳入的參數(shù)String');
// 打印結(jié)果為 我是傳入的參數(shù)String 自執(zhí)行方法
遞歸函數(shù)
// 遞歸求和
var sum=0;
funcSum(int n){
sum+=n;
if(n==0){
return;
}
funcSum(n-1); // 循環(huán)調(diào)用 funcSum 函數(shù)
}
funcSum(5);
// 計算結(jié)果 sum 為 15
閉包
閉包實現(xiàn)的功能為:可以常駐內(nèi)存但不污染全局孕似。
閉包的實現(xiàn)方式為:函數(shù)嵌套函數(shù), 內(nèi)部函數(shù)會調(diào)用外部函數(shù)的變量或參數(shù), 變量或參數(shù)不會被系統(tǒng)回收(不會釋放內(nèi)存)瓶佳。
閉包的寫法: 函數(shù)嵌套函數(shù),并return 里面的函數(shù)鳞青,這樣就形成了閉包霸饲。