Flutter基础之Dart语言入门:函数

2022-04-11 17:57:32 浏览数 (1)

Flutter基础之Dart语言入门

函数

Dart是一种真正的面相对象的语言,函数即是对象,类型是Function,即可赋值给变量或作为参数传递给其他函数

  1. 函数声明
代码语言:javascript复制
bool isNoble(int atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}

dart函数声明如果没有显式声明返回值类型时会默认当做dynamic处理,注意函数的返回值没有类型推断

代码语言:javascript复制
typedef bool CALLBACK();
//不指定返回类型,此时默认为dynamic,不是bool
isNoble(int atomicNumber) {
  return _nobleGases[atomicNumber] != null;
}
void test(CALLBACK cb){
   print(cb()); 
}
//报错,isNoble不是bool类型
test(isNoble);
  1. 箭头函数 对于只包含一个表达式的函数,简写如下 =>
代码语言:javascript复制
bool isNoble (int atomicNumber )=> _nobleGases [ atomicNumber ] != null;

函数作为变量

代码语言:javascript复制
var say= (str){
  print(str);
};
say("hi world");

函数作为参数传递

代码语言:javascript复制
void execute(var callback){
    callback();
}
execute(()=>print("xxx"));
  1. 可选的位置参数

包装一组函数参数,用[] 标记为可选的位置参数

代码语言:javascript复制
String say(String from, String msg, [String device]) {
  var result = '$from says $msg';
  if (device != null) {
    result = '$result with a $device';
  }
  return result;
}
  1. 可选的命名参数

定义函数时,使用{param1, param2 , …},可用于指定命名参数,

代码语言:javascript复制
//设置[bold]和[hidden]标志
void enableFlags({bool bold, bool hidden}) {
    // ...
}

调用函数时,可以使用指定命名参数,如paramName: value

代码语言:javascript复制
enableFlags(bold: true, hidden: false);

可选命名参数在Flutter中使用非常频繁。

匿名函数 匿名方法

代码语言:javascript复制
(参数1,参数2,...){
        方法体...
        return返回值
}

匿名方法特性

可赋值给变量,通过变量进行调用

可在其他方法中直接调用或传递给其它方法

0 人点赞