版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxl517116279/article/details/88429940
函数定义
int add(int x) {
return x + 1;
}
调用
add(1);
定义时函数类型可以省略 (不建议省略)
函数都有返回类型,void类型函数 实际返回null
函数可以在函数内部定义,无限嵌套
当函数只有一行表达式时,可以使用箭头简写
int add(int a) => a + 1;
可选位置参数
把可选参数放到 [] 中,必填参数要放在可选参数前面
int add(int x, [int y, int z]) {
if (y == null) {
y = 1;
}
if (z == null) {
z = 1;
}
return x + y + z;
}
调用
add(1, 2);
可选位置参数 默认值
int add(int x, [int y = 1, int z = 2]) {
return x + y;
}
调用
add(1, 2);
可选命名参数
int add({int x = 1, int y = 1, int z = 1}) {
return x + y + z;
}
调用
add(x: 1, y: 2);
函数内定义
void main(){
int add(int x){
return x + x;
}
print(add(1));
}
闭包,返回函数对象Funcation
Function makeAdd(int x) {
return (int y) => x + y;
}
调用
var add = makeAdd(1); //x:1
print(add(5)); //y:5
匿名函数
//无参匿名
var func=() => print('abc');
//有参匿名
var func=(name) => print('${name}');
//通过()调用,不推荐
(()=>print('abc'))();//不建议这样写
//匿名函数传参
List test(List list, String func(str)) {
for (var i = 0; i < list.length; i++) {
list[i] = func(list[i]);
}
return list;
}
print(test(['aa','bb'],(str)=> str * 2 ));