Dart:函数 Function

1.函数定义

int add(int x) {
  return x + 1;
}

调用
add(1);

定义时函数类型可以省略 (不建议省略)

函数都有返回类型,void类型函数 实际返回null

函数可以在函数内部定义,无限嵌套

当函数只有一行表达式时,可以使用箭头简写

int add(int a) => a + 1;

 

2.可选位置参数

把可选参数放到 [ ] 中,必填参数要放在可选参数前面

复制代码
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 ));
复制代码

 

posted @   技术研究与问题解决  阅读(240)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2020-05-09 pandas入门之Series
2020-05-09 基于sklearn岭回归的波士顿房价预测
点击右上角即可分享
微信分享提示