Dart函数

定义函数

函数也是对象,当没有指定返回值的时候,函数返回null。函数定义方法如下:

String sayHello(String name)
{
  return 'Hello $name!';
}

//is  is!操作符判断对象是否为指定类型,如num、String等
assert(sayHello is Function);

由于类型可选,所以也可以写成:

sayHello(name)
{
  return 'Hello $name!';
}

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

sayHello(name) => 'Hello $name!';

Dart中匿名函数的写法 (name)=>’Hello $name!’;

var  sayHello = (name)=>'Hello $name!';

函数闭包

Function makeSubstract(num n)
{
  return (num i) => n - i;
}

void main()
{
  var x = makeSubstract(5);
  print(x(2));
}

Dart中函数也是对象

var callbacks = [];
for (var i = 0; i < 3; i++) {
  // 在列表 callbacks 中添加一个函数对象,这个函数会记住 for 循环中当前 i 的值。
  callbacks.add(() => print('Save $i'));
}
callbacks.forEach((c) => c()); // 分别输出 0 1 2

可选参数

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

  • 命名可选参数使用大括号{},默认值用冒号:
    FunX(a, {b, c:3, d:4, e})
    {
    print('$a $b $c $d $e');
    }
  • 位置可选参数使用方括号[],默认值用等号=

在位置可选参数的函数中,大括号内的参数可以指定0个或多个在调用的时候参数值会依次按顺序赋值。

FunY(a, [b, c=3, d=4, e])
{
  print('$a $b $c $d $e');
}

void main()
{
  FunX(1, b:3, d:5);
  FunY(1, 3, 5);
}

 上一篇
Dart运算符 Dart运算符
按照运算符优先级高低进行排序 描述 操作符 一元后置操作符 expr++    expr–    ()    []    .    ?. 一元前置操作符 -expr    !expr    ~expr    ++expr   
2019-02-17
下一篇 
Dart初识 Dart初识
Dart简介Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开源软件。 Dart是面向对象的、类定义的、单继
2019-02-15
  目录