Dart之函数(递归、匿名、自执行、可选参数、默认参数、命名参数)

简介: Dart之函数(递归、匿名、自执行、可选参数、默认参数、命名参数)

一、函数定义格式

 返回类型 方法名吃(参数1,参数2...){
      方法体
       return 返回值;
 }

返回类型、参数可以省略,如没有返回值,不需要return 返回值;

//没有明确是否有返回值,没有返回值
fn1() {}
//没有明确是否有返回值,有返回值
fn2() {
  return 1;
}
//明确没有返回值
void f3() {}
//明确有返回值
int f4() {
  return 5;
}
//明确有返回值,有参数
int f6(int a,int b) {
  return a+b;
}

二、有参函数

//  自定义方法
  int add2(int a, int b) {
    return a + b;
  }
 
  print(add2(3, 4)); //55

三、匿名函数

  var fn3 = () {
    print("匿名方法");
  };
  fn3(); //匿名方法

四、自执行函数

//  自执行方法
  ((){print("我是自执行方法!");})();
//  带参数自执行方法
  ((int a){
    print(a);//10
  })(10);
}

五、可选参数函数

 // 自定义方法,可选参数
String printUserInfo(String username, [age]) {
  if (age == null) {
    return username;
  }
  return "$username---$age";
}
 
  print(printUserInfo("zhangsan")); //zhangsan
  print(printUserInfo("zhangsan", 56)); //zhangsan---56

六、默认参数函数、命名参数

//自定义方法,默认参数
int add3([int a = 1, int b = 2]) {
  return a + b;
}
 
//自定义方法,命名参数
 
int add4(int a, {int b = 4}) {
  return a + b;
}
  print(add3()); //3
  print(add3(9, 89)); // 98
  print(add4(1, b: 16)); //17

七、函数参数为另一个函数

//自定义方法,参数为一个方法
fn1() {
  print("fn1");
}
 
fn2(fname) {
  fname();
}
 
  fn2(fn1); //fn1

八、函数之间调用

//判断一个数是否为偶数
bool isEvenNumber(int n) {
  if (n % 2 == 0) {
    return true;
  }
  return false;
}
//打印0-n的所有偶数
void printNum(int n) {
  for (int i = 0; i <= n; i++) {
    if (isEvenNumber(i)) {
      print(i);
    }
  }
}
 
  printNum(7); //0 2 4 6

九、箭头函数

  ["1", "2", "3"]
      .map((e) => "$e$e")
      .toList()
      .forEach((element) => print(element)); // 11 22  33

十、递归函数

main(){
//  递归计算阶乘
  var sum=1;
 int fn(int n){
    sum*=n;
    if (n!=1) {
      fn(n-1);
    }
    return sum;
 }
  print(fn(5)); //120
}
目录
相关文章
|
8月前
|
Python
Python函数默认参数设置
Python函数默认参数设置
|
2月前
|
C++
C++ 默认参数与引用传递:语法、用法及示例
C++ 允许函数参数具有默认值,简化调用。例如,`void myFunction(string country = &quot;Norway&quot;)` 中`country`默认为&quot;Norway&quot;。默认参数仅适用于函数参数,不包括返回值。引用传递是另一种传递方式,函数直接访问变量内存,允许修改原值,提高效率。`void swapNums(int &x, int &y)` 中`x`和`y`为引用参数。了解这些特性可提升代码可读性和性能。
55 0
|
2月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
53 0
|
9月前
|
Python
python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。
python之有关关键字参数,默认参数,不定长参数,位置参数的定义,区别,以及使用方法。
|
11月前
|
JavaScript
TypeScript 函数的详细使用(默认参数、可选参数、剩余参数、重载声明)
TypeScript 函数的详细使用(默认参数、可选参数、剩余参数、重载声明)
127 0
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
|
Python
一日一技:在Python中为别人的函数设定默认参数
一日一技:在Python中为别人的函数设定默认参数
81 0
|
Shell
SHELL中函数的写法、调用、参数、返回值代码范例
SHELL中函数的写法、调用、参数、返回值代码范例
104 0
|
开发者 Python
函数的缺省函数| 学习笔记
快速学习函数的缺省函数
118 0
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )
142 0
【Groovy】闭包 Closure ( 闭包参数列表规则 | 默认参数列表 | 不接收参数 | 接收自定义参数 )