美文网首页
Dart中的函数-----下

Dart中的函数-----下

作者: 二猪哥 | 来源:发表于2019-08-20 16:19 被阅读0次

箭头函数

  • 需求:使用forEach打印下面List里面的数据
    List list=['苹果','香蕉','西瓜'];

第一种方式
    list.forEach((value){
      print(value);
    });

第二种方式---箭头函数:
实现方式1:
    list.forEach((value)=>print(value));

实现方式2:
    list.forEach((value)=>{
      print(value)
    });

打印结果:
苹果
香蕉
西瓜
  • 需求:修改下面List里面的数据,让数组中大于2的值乘以2
    List list=[4,1,2,3,4];

第一种方式:
    var newList=list.map((value){
        if(value>2){
          return value*2;
        }
        return value;
    });
    print(newList.toList());

第二种方式---箭头函数:
   var newList=list.map((value)=>value > 2 ? value * 2 : value);
   print(newList.toList());

打印结果:
[8, 1, 2, 6, 8]

函数的相互调用

  • 需求:
    1、定义一个方法isEvenNumber来判断一个数是否是偶数
    2、定义一个方法打印1-n以内的所有偶数
1、定义一个方法isEvenNumber来判断一个数是否是偶数 

第一种方式:
    bool isEvenNumber(int n){
      if(n%2==0){
        return true;
      }
      return false;
    }
第二种方式:
bool isEvenNumber(int n) =>n%2 == 0 ? true : false;


    printNum(int n){
        for(var i=1;i<=n;i++){
            if(isEvenNumber(i)){
              print(i);
            }
        }
    } 
printNum(10);  

打印结果:2 4 6 8 10

匿名方法

无参
  var printNum = (){
    print(123);
  };
  printNum();     //123


有参
  var printNum = (int n){
    print(n+2);
  };
  printNum(12);   //14

自执行方法

一运行就执行,不需要手动调用。

    ((int n){
      print(n);    //12
      print('我是自执行方法');   //我是自执行方法
    })(12);

方法的递归

 var sum=1;         
  fn(n){
    sum*=n;
    if(n==1){
      return ;
    }         
    fn(n-1);    
  }
  fn(5);      
  print(sum);

闭包

1、全局变量特点: 全局变量常驻内存、全局变量污染全局
2、局部变量的特点: 不常驻内存会被垃圾机制回收、不会污染全局

想实现的功能:
1.常驻内存
2.不污染全局
因此产生了闭包,闭包可以解决这个问题.....

闭包: 函数嵌套函数, 内部函数会调用外部函数的变量或参数, 变量或参数不会被系统回收(不会释放内存)。

闭包的写法: 函数嵌套函数,并return 里面的函数,这样就形成了闭包。

  fn(){
    var a=123;  /*不会污染全局   常驻内存*/
    return(){           
      a++;          
      print(a);
    };        
   }     
   var b=fn();  
    b(); //124
    b(); //125
    b(); //126

相关文章

  • Dart中的函数-----下

    箭头函数 需求:使用forEach打印下面List里面的数据 需求:修改下面List里面的数据,让数组中大于2的值...

  • 【Dart】函数

    声明函数 直接声明Dart中声明函数不需要function关键字 箭头函数+Dart中 的箭头函数中,函数体只能写...

  • Dart 如何正确使用构造函数?

    前言 Dart 语言的构造函数和其他语言会有些不同,我们列举一下 Dart 中的构造函数的几种形式。 这里比较容易...

  • flutter强制竖屏

    在main.dart的main函数中

  • Dart中的函数

    定义函数 函数参数 可选参数{}中的参数是可选参数 位置参数[]中定义的参数是位置参数, 位置必须一一对应 默认参...

  • 【Dart/Flutter】中对于BigInt的一些操作

    Dart中BigInt的基本计算函数 Dart中对于大数字只有一个BigInt,没有像Java中的BigDecim...

  • Dart基础: 构造函数

    Dart基础: 构造函数 Dart的构造函数比较变化多端, 我们可以在不同的场景下合理声明和调用一个class的构...

  • dart基础---函数

    Dart中函数是对象其类型为Function,可以作为参数被另一个函数调用也可以作为一个变量。Dart中不支持函数...

  • Dart入门03 -- 函数,闭包,运算符,枚举

    函数 函数的定义 函数返回值类型可以省略,开发中不推荐这么写; 函数的参数 Dart中不支持函数的重载; 函数的参...

  • Flutter之Dart基础

    一. Hello Dart 1.1 Hello Dart 和大多数语言一样,Dart的入口函数也是Main函数,新...

网友评论

      本文标题:Dart中的函数-----下

      本文链接:https://www.haomeiwen.com/subject/udhpsctx.html