为什么 Java 和 C# 没有到布尔值的隐式转换?
2022-09-01 13:33:28
自从我开始Java以来,它一直非常恶化,因为它不支持从数字类型到布尔值的隐式转换,所以你不能做这样的事情:
if (flags & 0x80) { ... }
相反,你必须经历这个疯狂:
if ((flags & 0x80) != 0) { ... }
这与 null 和 objects 相同。我所知道的包括JavaScript在内的所有其他类似C的语言都允许它,所以我认为Java只是白痴,但我刚刚发现C#是相同的(至少对于数字,不知道null/objects):http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
微软故意从C++改变它,那么为什么呢?显然,我错过了一些东西。为什么要改变(我以为是)世界上最自然的东西,让它更长的打字时间?它到底出了什么问题?