switch表达式不能是float,double或boolean [英] switch expression can't be float, double or boolean
问题描述
为什么开关
表达式不允许 long
, float $ c Java中的$ c>,
double
或 boolean
值?为什么只允许 int
(以及自动提升为 int
的那些)?
Why doesn't the switch
expression allow long
, float
, double
or boolean
values in Java? why is only int
(and those that are automatoically promoted to int
) allowed?
推荐答案
即使可行,浮动和双重也难以可靠使用 - 不要忘记在float / double上执行完全相等的匹配通常是一个坏主意无论如何,由于表示的性质。
Float and double would be awkward to use reliably even if they were possible - don't forget that performing exact equality matches on float/double is usually a bad idea anyway, due to the nature of the representation.
对于布尔值,为什么不使用如果
开始?
For Boolean values, why not just use if
to start with?
我不记得永远想要打开这些类型中的任何一种,说实话。您是否考虑过特定用例?
I can't remember ever wanting to switch on any of these types, to be honest. Do you have a particular use case in mind?
这篇关于switch表达式不能是float,double或boolean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!