Dart笔记(12):函数 Function

版权声明:本文为博主原创文章,未经博主允许不得转载。 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 ));

猜你喜欢

转载自blog.csdn.net/hxl517116279/article/details/88429940