Dart学习笔记(八)

44 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Dart 箭头函数 函数的相互调用

需求: 使用forEach打印下面List里面的数据

普通函数

void main() {
 
   List list = ['苹果', '香蕉', '西瓜'];
 
   list.forEach((item) {
 
     print(item); // 苹果 香蕉 西瓜
 
   });
 
}

箭头函数

void main() {
 
   list.forEach((value) => print(value)); // 苹果 香蕉 西瓜
 
   list.forEach((value) => {
 
     print(value) // 苹果 香蕉 西瓜
 
   });
 
}

需求: 修改下面List里面的数据,让数组中大于2的值乘以2

普通函数

代码如下:

void main() {
 
   List list = [4, 1, 2, 3, 4];
 
   var newList = list.map((value) {
 
     if (value > 2) {
 
       return value * 2;
 
     }
 
     return value;
 
   });
 
   print(newList); // (8, 1, 2, 6, 8)
 
   print(newList.toList()); // [8, 1, 2, 6, 8]
}

箭头函数

代码如下:

void main() {
 
   var newList = list.map((value) => value > 2 ? value * 2 : value);
 
   print(newList.toList()); // [8, 1, 2, 6, 8]
 
}

函数的相互调用

需求:定义一个方法isEvenNumber来判断一个数是否是偶数

代码如下:

void main() {
 
  bool isEVenNumber(int n) {
 
    if (n % 2 == 0) {
 
      return true;
 
    }
 
    return false;
 
  }
 
}

需求:定义一个方法打印1-n以内的所有偶数

代码如下:

void main() {
 
    printNumber(int n) {
 
    for (var i = 1; i <= n; i++) {
 
      if (isEVenNumber(i)) {
 
        print(i);
 
      }
 
    }
 
  }
 
  printNumber(10); // 2 4 6 8 10
 
}

Dart 匿名方法 自执行方法 方法的递归

匿名方法

代码如下:

void main() {
 
   var printNum = () {
 
     print(123);
 
   };
 
   printNum(); // 123
 
}

匿名方法-传参

代码如下:

void main() {
 
   var printNum = (int n) {
 
     print(n + 123);
 
   };
 
   printNum(1); // 124
 
}

自执行方法

代码如下:

void main() {
 
   (() {
 
     print('我是自执行方法'); // 我是自执行方法
 
   })();
 
}

自执行方法-传参

代码如下:

void main() {
 
   ((int n) {
 
     print(n + 12); // 13
 
   })(1);
 
}

方法的递归

代码如下:

void main() {
 
   var sum = 1;
 
   fn(int n) {
 
     sum *= n;
 
     if (n == 1) {
 
       return;
 
     }
 
     fn(n - 1);
 
   }
 
   fn(5);
 
   print(sum); // 120
 
}

通过方法的递归 求1-100的和

代码如下:

void main() {
 
  var sum = 0;
 
  fn(int n) {
 
    sum += n;
 
    if (n == 0) {
 
      return;
 
    }
 
    fn(n - 1);
 
  }
 
  fn(100);
 
  print(sum); // 5050
 
}