在布尔表达式中使用 => 运算符
Use the => operator in boolean expressions
如何在布尔表达式中使用“=>”运算符?例如,下面的声明是错误的,因为 "isOpen = !isOpen" returns 一个布尔值:
// not a good function declaration
void toggle => isOpen = !isOpen;
我的想法与此类似:
void toggle => shutUp(isOpen = !isOpen);
其中 shutUp()
是一个 returns 一个 void
值并接受任何布尔参数的函数。
像这样:
var isOpen = false;
var toggle = () => isOpen = !isOpen;
toggle();
print(isOpen);
toggle();
print(isOpen);
Dart 语言允许将表达式用作函数。
此功能称为函数表达式。
此功能允许表达式可以有参数。
示例。
void main() {
var sum = (a, b) => a + b; // <==== function expression
for (int i = 0; i < 5; i++) {
print(sum(i, i));
}
}
在这种情况下,lexeme =>
并不表示运算符。它意味着一个词素,它标志着函数体(函数表达式的)的开始。
这不是使用函数表达式的唯一一种可能的语法。
只是举例说明。
您不应将 =>
用于 void 函数。
正如 Mezoni 所写,=> e
是 { return e; }
的 shorthand 符号。你不应该在 void 函数中写 return e
,所以你也不应该使用 =>
.
随便写:
void toggle() { isOpen = !isOpen; }
如何在布尔表达式中使用“=>”运算符?例如,下面的声明是错误的,因为 "isOpen = !isOpen" returns 一个布尔值:
// not a good function declaration
void toggle => isOpen = !isOpen;
我的想法与此类似:
void toggle => shutUp(isOpen = !isOpen);
其中 shutUp()
是一个 returns 一个 void
值并接受任何布尔参数的函数。
像这样:
var isOpen = false;
var toggle = () => isOpen = !isOpen;
toggle();
print(isOpen);
toggle();
print(isOpen);
Dart 语言允许将表达式用作函数。
此功能称为函数表达式。
此功能允许表达式可以有参数。
示例。
void main() {
var sum = (a, b) => a + b; // <==== function expression
for (int i = 0; i < 5; i++) {
print(sum(i, i));
}
}
在这种情况下,lexeme =>
并不表示运算符。它意味着一个词素,它标志着函数体(函数表达式的)的开始。
这不是使用函数表达式的唯一一种可能的语法。 只是举例说明。
您不应将 =>
用于 void 函数。
正如 Mezoni 所写,=> e
是 { return e; }
的 shorthand 符号。你不应该在 void 函数中写 return e
,所以你也不应该使用 =>
.
随便写:
void toggle() { isOpen = !isOpen; }