1.自定义方法
1.自定义方法的基本格式:
返回类型 方法名称(参数1,参数2,...){
方法体
return 返回值;
}
void printInfo(){ print('我是一个自定义方法'); } int getNum(){ var myNum=123; return myNum; } String printUserInfo(){ return 'this is str'; } List getList(){ return ['111','2222','333']; } void main(){ printInfo(); var n=getNum(); print(n); print(printUserInfo()); print(getList()); }
2.方法作用域
void main(){ void xxx(){ aaa(){ print(getList()); print('aaa'); } aaa(); } // aaa(); 错误写法 xxx(); //调用方法 }
2.调用方法传参
1).定义一个方法 求1到这个数的所有数的和
void main(){ int sumNum(int n){ var sum=0; for(var i=1;i<=n;i++) { sum+=i; } return sum; } var n1=sumNum(5); print(n1); var n2=sumNum(100); print(n2); }
2).定义一个方法然后打印用户信息
void main(){ String printUserInfo(String username,int age){ //行参 return "姓名:$username---年龄:$age"; } print(printUserInfo('张三',20)); //实参 }
3)定义一个带可选参数的方法
void main(){ String printUserInfo(String username,[int age]){ //行参 //可选参数用 [ ] 包起来 if(age!=null){ return "姓名:$username---年龄:$age"; } return "姓名:$username---年龄保密"; } print(printUserInfo('张三',21)); //实参 print(printUserInfo('李四')); }
4).定义一个带默认参数的方法
void main(){ String printUserInfo(String username,[String sex='男',int age]){ //行参 if(age!=null){ return "姓名:$username---性别:$sex--年龄:$age"; } return "姓名:$username---性别:$sex--年龄保密"; } print(printUserInfo('张三')); print(printUserInfo('小李','女')); print(printUserInfo('小李','女',30)); }
5)定义一个命名参数的方法
void main(){ String printUserInfo(String username,{int age,String sex='男'}){ //行参 if(age!=null){ return "姓名:$username---性别:$sex--年龄:$age"; } return "姓名:$username---性别:$sex--年龄保密"; } print(printUserInfo('张三',age:20,sex:'未知')); //定义命名参数sex }
6).实现一个 把方法当做参数的方法
void main(){ //方法 fn1(){ print('fn1'); } //方法 fn2(fn){ fn(); } //调用fn2这个方法 把fn1这个方法当做参数传入 fn2(fn1); }