//普通函数
int add(int a, int b) {
return a + b;
}
//可选参数
int add1(int a, int b, [int c]) {
if (c != null) {
return a + b + c;
}
return a + b;
}
//可选参数设置默认值
int add2(int a, int b, [int c = 100]) {
return a + b + c;
}
//具名参数,具有可选参数的特性
int sub({int a, int b}) {
return a - b;
}
//具名参数设置默认值
int sub1({int a, int b = 0}) {
return a - b;
}
// 具名参数,可以设置某个参数是必须的@required
int add3({int a, @required int b, int c}) {
if (a == null && c == null) {
return b;
} else if (a == null && c != null) {
return b + c;
} else if (a != null && c == null) {
return a + b;
} else if (a != null && c != null) {
return a + b + c;
}
}
在函数内部定义函数
1.声明别名
// typedef 定义函数类型的别名
typedef Sum = int Function(int a, int b);
2.创建函数
//dosum函数,会先执行return add, 然后调用add方法
Sum dosum(int c) {
int add(int a, int b) {
return a + b + c; //这个return是add的返回
}
return add; //这个return是dosum的返回
}
3.调用
var add = dosum(1);
print(add(2, 3));
// print(dosum(1)(2, 3))
其中1、2也可以合并起来写
int Function(int a, int b) dosum(int c) {
int add(int a, int b) {
return a + b + c; //这个return是add的返回
}
return add; //这个return是dosum的返回
}
网友评论