前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter基础之Dart语言入门:函数

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

作者头像
Qson
发布2022-04-11 17:57:32
3740
发布2022-04-11 17:57:32
举报
文章被收录于专栏:Hi Flutter

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返回值
}

匿名方法特性

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hi Flutter 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档