它缺少双等号。因此,它是在做赋值而不是相等比较(请记住,赋值的返回值是新值)。在大多数情况下,大多数类型都不是布尔值,这意味着结果不是布尔值,因此对一条
if语句而言它是非法的,从而导致编译器错误。但是,由于此处的类型已经是布尔值,因此赋值会导致布尔值,因此安全检查失败。因此,
b= true意味着为该
b值分配了值
true,这就是该
if语句返回并检查的值。

它缺少双等号。因此,它是在做赋值而不是相等比较(请记住,赋值的返回值是新值)。在大多数情况下,大多数类型都不是布尔值,这意味着结果不是布尔值,因此对一条
if语句而言它是非法的,从而导致编译器错误。但是,由于此处的类型已经是布尔值,因此赋值会导致布尔值,因此安全检查失败。因此,
b= true意味着为该
b值分配了值
true,这就是该
if语句返回并检查的值。