zoukankan      html  css  js  c++  java
  • Dart函数

      

    函数

    Dart是一种真正的面向对象的语言,所以即使是函数也是对象,并且有一个类型Function。这意味着函数可以赋值给变量或作为参数传递给其他函数,这是函数式编程的典型特征。同时意味着在Dart语言中我们会经常使用到高阶函数.

    2 . 函数返回值,可以省略, 默认为dynamic, 且不会进行类型推断

    typedef bool CALLBACK();
    
    //不指定返回类型,此时默认为dynamic,不是bool
    isNoble(int atomicNumber) {
      return _nobleGases[atomicNumber] != null;
    }
    
    void test(CALLBACK cb){
       print(cb()); 
    }
    //报错,isNoble不是bool类型
    test(isNoble);
    

    3. 函数作为参数传递

    void execute(var callback) {
        callback();
    }
    execute(() => print("xxx")) // 可以直接将函数体传入到实参位置, 而不用多余的定义一个函数, 运算拿到函数结果(返回值) 再作为形参传递, 高阶函数的特性

    4.可选位置参数, 可选命名参数

    String say(String from, String msg, [String device]) { //可选位置参数,必须是参数的最后定义
      var result = '$from says $msg';
      if (device != null) {
        result = '$result with a $device';
      }
      return result;
    }
    //设置[bold]和[hidden]标志
    void enableFlags({bool bold, bool hidden}) {
        // ... 
    }
    调用函数时,可以使用指定命名参数。例如:paramName: value
    
    enableFlags(bold: true, hidden: false);

    可选位置参数 和 可选命名参数在同一个函数定义中,不能同时出现

      

  • 相关阅读:
    opencv-活体检测
    人脸识别
    Opencv-python基本操作
    白话深度学习与Tensorflow(二)
    Linux系统入门(一)-未完成
    编程题29 题目:求对角线元素之和
    编程题28 题目 排序
    编程题27 题目:求100之内的素数
    编程题 18兵乓球比赛
    编程题21 求阶数总和
  • 原文地址:https://www.cnblogs.com/gloryhope/p/13354060.html
Copyright © 2011-2022 走看看