07Dart:函数

2018-11-01  本文已影响0人  tanhh

dart函数返回值是可选的,可以不知道返回值类型,但建议还是明确输入类型和返回类型方便修改,也方便阅读,函数也是对象,当没有指定返回值的时候,函数返回null

String carName(String name)

{

  return 'car $name!';

}

carName2(String name)

{

  return 'car $name!';

}

//is is!操作符判断对象是否为指定类型,如num、String等

assert(carName is Function);

如果函数只是简单的返回一个表达式的值,可以使用箭头语法 =>expr;

它等价于{return expr;}       可以写成carName2(name) =>'car $name!';

Dart中匿名函数的写法 (name)=>’car $name!’; 匿名函数var carName2 =  (name) =>'car $name!';

typedef定义函数别名:作用就是为复杂的声明定义一个别名;

原声明: 

int *(*arr[5])(char *); 

变量名为a,如想用一个新别名pFun替换arr,可以定义如下: 

typedef int *(*pFun)(char *); 

原声明的最简化版: 

pFun arr[5];

函数闭包:

Function makeSubstract(num n)

{

  return (num i) => n - i;

}

void main()

{

  var x = makeSubstract(5);

  print(x(2));

}

初始化变量的时候,参数对应的是函数的参数num n,调用函数类型变量的时候,参数对应的是返回值中的参数num i

Dart中支持两种可选参数:命名可选参数和位置可选参数,但两种可选不能同时使用

命名可选参数使用大括号{},默认值用冒号:

位置可选参数使用方括号[],默认值用等号=

上一篇下一篇

猜你喜欢

热点阅读