Как я могу использовать оператор «=>» в булевых выражениях? Например, следующее объявление является неправильным, так как «IsOpen = IsOpen!» Возвращает логическое значение:Используйте оператор => в булевых выражениях
// not a good function declaration
void toggle => isOpen = !isOpen;
Я думал, в чем-то похожее на это:
void toggle => shutUp(isOpen = !isOpen);
Где shutUp()
является функция, возвращает значение void
и принимает любые логические параметры.
Thansk. Странно, но это работает. – Cequiel
=> x является сокращением для {return x; }. Таким образом, функция может быть записана как: toggle() => isOpen =! IsOpen; и анонимная функция такая же, просто без имени:() => isOpen =! isOpen ;. [Подробнее об этом здесь.] (Https://www.dartlang.org/resources/dart-tips/dart-tips-ep-7) – Alvis
Это не странно, что он работает. Это почти то же самое, что 'bool toggle() => isOpen =! IsOpen;', только написанный более запутанным способом. Способ, который, вероятно, также не работает для методов - вы не можете реализовать подпрограмму 'void toggle()' с помощью 'var toggle'. Я не рекомендую использовать это решение. – lrn