美文网首页
4. Dart -方法/闭包

4. Dart -方法/闭包

作者: Aliv丶Zz | 来源:发表于2021-03-06 15:27 被阅读0次

Dart方法的格式:

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

示例:

  int sumTest(int num1, int num2) {
    return num1 + num2;
  }
1. 嵌套方法作用域只能在外层函数中使用(与swift类似)
  void funcTest() {
    void hello() {
      print("hello world");
    }

    hello();
  }
2 可选参数
  String getUserInfo(String name, String sex, [int age, String address]) {
    return "${name} $sex $age  $address";
  }

  print(getUserInfo("张三", "男"));
  print(getUserInfo("张三", "男", 19));
  print(getUserInfo("张三", "男", 18, "上海"));

/*
张三 男 null  null
张三 男 19  null
张三 男 18  上海
*/
3 默认参数
  String getUserInfo(String name, String sex,
      [int age = 20, String address = "北京"]) {
    return "${name} $sex $age  $address";
  }

  print(getUserInfo("张三", "男"));
  print(getUserInfo("张三", "男", 19));
  print(getUserInfo("张三", "男", 18, "上海"));
/*
张三 男 20  北京
张三 男 19  北京
张三 男 18  上海
*/
4 命名参数
  //命名参数
  String getUserInfo2(String name, String sex, {int age = 20, String address}) {
    return "${name} $sex $age  $address";
  }

  print(getUserInfo2("张三", "男"));
  print(getUserInfo2("张三", "男", age: 19));
  print(getUserInfo2("张三", "男", age: 19, address: "上海"));

/*
张三 男 20  北京
张三 男 19  北京
张三 男 18  上海
*/
5. 箭头函数

箭头函数{}可以省略,切后面只能有一句代码

  var list = [1, 2, 3, 4];
  //原始
  list.forEach((element) {
    if (element >= 2) {
      print("$element >= 2");
    } else {
      print("$element < 2");
    }
  });
 
 // 箭头函数 + 三目运算符 ?:  省略{}
  list.forEach((element) =>
      (element >= 2) ? print("$element >= 2") : print("$element < 2"));
// 箭头函数 + if-else
  list.forEach((element) => {
        if (element >= 2) {print("$element >= 2")} else {print("$element < 2")}
      });
}
6. 匿名方法
 var testFn = (String a) {
    print(a);
  };
  testFn("hello World");

  //等价于 自执行方法

  (String a) {
    print(a);
  }("hello World 2");

7. 自执行方法
  // 自执行方法
  ((int a) {
    print(a);
  })(12);

Dart闭包

  • 闭包是一个方法(对象)
  • 闭包定义在其他方法内部
  • 闭包能够访问外部方法内的局部变量,并持有其状态(这是闭包最大的作用,可以通过闭包的方式,将其暴露出去,提供给外部访问)
  Function(int a) fn() {
    var num = 1;
    return (int a) {
      num += a;
      print(num);
    };
  }

  var loadFn = fn();
  loadFn(1); //2
  loadFn(2); //4
  loadFn(4); //8
}

相关文章

  • 4. Dart -方法/闭包

    Dart方法的格式: 返回类型 方法名称 (参数1, 参数2, ...){ 方法体 return 返回值;} 示例...

  • Dart语法(下)

    前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...

  • java,kotlin,dart闭包

    java闭包 kotlin闭包 dart闭包 了解不同语言之间的相同和不同。学习和进步。

  • 带你Dart带你飞之Functions

    Functions(方法) 方法的参数入口函数一等方法对象匿名方法静态作用域词法闭包 Dart 是一个真正的面向对...

  • Dart(十)闭包

    闭包是一个方法(对象)闭包定义在其他方法内部闭包能够访问外部方法内的局部变量,并持有其状态(这是闭包最大的作用,可...

  • 4.闭包

    一、函数也是对象,和变量一样 可以作为参数被传递可以在函数内部定义可以作为函数返回值函数可以赋值给变量 二、内部函...

  • 4 iOS类微信日志2018-01-13

    Swift 闭包的使用 步骤: 1. 声明闭包 2. 声明闭包的别名属性 3. 设置回调函数 4. 调用闭包 声明...

  • MacOS使用fvm管理多个flutter版本

    安装独立的dart环境 官方安装方法:https://dart.dev/get-dart或者下载包:https:/...

  • Dart笔记(三)闭包

    1.闭包是一个方法(对象)2.闭包定义在其他方法内部3.闭包能够访问外部方法内的局部变量,并且持有其状态 一个例子...

  • Dart---闭包函数

    1、全局变量特点:全局变量常驻内存,垃圾回收机制不会回收全局变量。2、局部变量的特点:用完即会被垃圾回收机制回收,...

网友评论

      本文标题:4. Dart -方法/闭包

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