Flutter笔记之Dart函数

在Dart中函数也是对象,属于Function类型,特可以被分配给变量或做为参数进行传递。

1、简单的函数

Dart中函数的定义

/**
 * 返回值  方法名  (参数,参数){
 *       方法体
 *       返回值
 *       return XXX;
 * }
**/

以下举个例子来说明

/**
 * 没有返回值的function
 */
void printName(String name){
  printName("name=$name");
}

上边是个简单的没有返回值,参数类型是String类型的函数,我们也可以省略返回值,和参数的类型修饰比如

/**
 * 省略返回值和参数描述
 */
printNames(name){
  printName("name=$name");
}

接下来我们在定义一个有返回值的函数

/**
 * 带有返回值的function
 */
String getName(String name){
  return "name:$name";
}

我们还可以简写为:

/**
 * 用=>简写方法
 */

String getNames(String name)=> "names==$name";

2、可选参数函数

在函数定义的时候用{param,param,}或者[param,param,]
这两种可选参数函数,在调用上是有区别的例如:

/**
 * 可选参数function
 * 参数 name是必传参数,age,和sex随意
 */

void printInfo(String name,{int age,bool sex}){

  print("name=$name,age=$age,sex=$sex");
}

/**
 * 可选位置参数function
 */
void printBookInfo(String bookName,[double price, String  auth]){
  print("bookName=$bookName,price=$price,auth=$auth");
}


函数调用时候

 printInfo("tom",age: 10,sex: true);

  printBookInfo("钢铁是怎么样练成的",38.88,"你猜");

发现以{}形式定义的函数必须的写上 可变参数的key,而以[] 定义的函数就不需要,只需要按照位置以此填写。

可变参数还可以定义可变参数的默认值,调用时候不传值的话就是默认值比如:

/**
 * 可选参数function
 * 参数 name是必传参数,age,和sex随意
 */

void printInfo(String name,{int age=10,bool sex=false}){

  print("name=$name,age=$age,sex=$sex");
}


/**
 * 可选位置参数function
 */
void printBookInfo(String bookName,[double price=30.09, String  auth="尼古拉·阿列克谢耶维奇·奥斯特洛夫斯基"]){
  print("bookName=$bookName,price=$price,auth=$auth");
}

3、匿名函数

没有名字的函数称之为匿名函数,看下怎么定义和调用

//匿名函数

  var fun=(){
    print("我是匿名函数");
  };
  fun();
第二种调用方法:

  ((){print("匿名函数自己调用");})();

4、闭包

个人浅解,闭包是方法中的方法,能够方便的访问到外部资源,接下看下怎么定义和调用

Function getFunction_Name(){
  var name="张三";
  return (){ return name;};
}
//  调用:
 var f=getFunction_Name();
  print(f());  // 张三

5、函数作为函数的参数传递

/**
 * 打印10年后学生的信息
 */
void consoleStudentInfo(String name,Function getAge){
  var  age=getAge(10);
  print("name=$name,age=$age");
}

int getAge(int age){
  return age+10;
}

调用
  consoleStudentInfo("zhangSan", getAge);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值