我怎样才能使用" =>"布尔表达式中的运算符?例如,以下声明是错误的,因为" isOpen =!isOpen"返回一个布尔值:
// not a good function declaration
void toggle => isOpen = !isOpen;
我在考虑类似的事情:
void toggle => shutUp(isOpen = !isOpen);
其中shutUp()
是一个返回void
值并接受任何布尔参数的函数。
答案 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,它标记函数体(函数表达式)的开头。
这不是使用函数表达式的唯一可能语法。 这只是理解的一个例子。