Dart:有没有办法在一行中否定和 return 一个布尔值?

Dart: Is there a way to negate and return a boolean in a single line?

有没有办法使用粗箭头 (=>) 符号将以下函数写成一行?

 bool tick() {
   _tick = !_tick;
   return _tick;
 }

简单:

bool tick() => !_tick;
应该定义

_tick,而这个函数会return取反值。所以你必须分配结果才能否定。像这样:

void main() {
  bool _tick = true;
  _tick = tick(_tick);
  print(_tick); 
  _tick = tick(_tick);
  print(_tick); 
}

bool tick(tick) => !tick;

以上将打印:

false
true

如果您想声明一个变量并在函数中取反,您可以尝试:

class Tick {
  bool tick;
  Tick(this.tick);
}

void tick(Tick data) => data.tick = !data.tick;

main() {
  var data = new Tick(true);
  print(data.tick); // true
  tick(data);
  print(data.tick); // false
  tick(data);
  print(data.tick); // true
}

下面的thick()方法将否定_tick和return新分配的值:

bool tick() => _tick = !_tick;