Dart has a true boolean type named bool, with only two values: true and false (and, I suppose, null). Due to Dart’s boolean conversion rules, all values except true are converted to false . Dart’s boolean expressions return the actual boolean result, not the last encountered value.