最近我在一个项目中看到了很多类似的代码块,它们按以下方式编写:
String usedAlphabet = "x3w4tnu34urgbgierg";
byte c = // (something initialized earlier)
return usedAlphabet[(int)(c / 16)];
Run Code Online (Sandbox Code Playgroud)
现在,(int)在访问相应的数组时使用强制转换的原因是什么?
对我而言,这似乎是多余的,但我可能错了,或者我可能缺乏关于类型铸造机制的知识.
你是对的 - 除法是整数除法,它总是得到一个整数,因此不需要强制转换.
然而,c它本身缺乏上下文(特别是如果没有定义接近这种用法),因为这可能不是很明显byte / int.可以添加铸件作为可读性辅助.