使用=>布尔表达式

时间:2016-08-30 13:16:24

标签: dart arrow-functions

我怎样才能使用" =>"布尔表达式中的运算符?例如,以下声明是错误的,因为" isOpen =!isOpen"返回一个布尔值:

// not a good function declaration
void toggle => isOpen = !isOpen;

我在考虑类似的事情:

void toggle => shutUp(isOpen = !isOpen);

其中shutUp()是一个返回void值并接受任何布尔参数的函数。

3 个答案:

答案 0 :(得分:3)

像这样:

{{1}}

答案 1 :(得分:2)

您不应该将=>用于void函数。

正如Mezoni所写,=> e{ return e; }的简写符号。你不应该在void函数中写return e,所以你也不应该使用=>

只需写下:

void toggle() { isOpen = !isOpen; }

答案 2 :(得分:1)

Dart语言允许将表达式用作函数 此功能称为函数表达式 此功能允许表达式具有参数。

实施例

void main() {
  var sum = (a, b) => a + b; // <==== function expression
  for (int i = 0; i < 5; i++) {
    print(sum(i, i));
  }
}

在这种情况下,lexeme =>并不意味着操作员。它表示一个lexeme,它标记函数体(函数表达式)的开头。

这不是使用函数表达式的唯一可能语法。 这只是理解的一个例子。