點燈坊

失くすものさえない今が強くなるチャンスよ

Boolean 之 Equality

Sam Xiao's Avatar 2024-03-25

Dart 可直接在 () 判斷 Boolean 為 truefalse

Version

Dart 3.3

Boolean Equality

void main() {
  var flag1 = true; // bool

  if (flag1) {
    print('flag1 is true');
  } else {
    print('flag1 is false');
  }

  if (!flag1) {
    print('flag1 is false');
  } else {
    print('flag1 is true');
  }
}
  • Dart 在 () 可直接判斷 true,也可加上 ! 判斷 `false``

String

void main() {
  var flag = ''; // String

  if (flag) { // X
    print('flag1 is true');
  } else {
    print('flag1 is false');
  }
}
  • Dart 在 () 不可判斷 Empty String

JavaScript 將 Empty String 視為 false,Non Empty String 視為 true

int

void main() {
  var flag = 0; // int

  if (flag) { // X
    print('flag1 is true');
  } else {
    print('flag1 is false');
  }
}
  • Dart 在 {} 不可判斷 Number

JavaScript 將 0 視為 false非0 視為 true

Conclusion

  • JavaScript 在 () 除了可判斷 Boolean 外,亦可判斷 String 與 Number;但 Dart 在 () 只能判斷 Boolean
  • JavaScript 的 Empty String 視為 false ,Non Empty String 視為 true 的技巧在 Dart 不能用
  • JavaScript 的 0 視為 false非0 視為 true 的技巧在 Dart 也不能用