在Kotlin中,从版本1.5开始,对Double和Long类型的直接转换被标记为不推荐的,建议调用下面的toInt().toChar() --一个将Double/Long转换为Char的函数链。
是什么促使Kotlin开发人员放弃了对Double和Long类型的直接转换?
这种方法可以避免哪些问题?
fun main() {
val l = 100_000_000_000 // random big number
val d = 1.2543534645645362E15 // random big double
var chUsedDirectToChar = l.toChar()
var chUsedToIntToChar = l.toInt().toChar() // the same
println(chUsedDirectToChar == chUsedToIntToChar) // true
chUsedDirectToChar = d.toChar()
chUsedToIntToChar = d.toInt().toChar() // the same
println(chUsedDirectToChar == chUsedToIntToChar) // true
}发布于 2022-08-10 07:37:19
您可以在“保持”中找到动机:https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/char-int-conversions.md
反向转换(如
Double.toChar())通常是没有意义的,如果通过先将数字转换为Int,然后得到与Int代码对应的字符来显式地表示意图,则会更清楚。
很难理解数字(如16.284619 )所需的字符是什么,所以现在必须显式地将其转换为Int,然后转换为Char。
https://stackoverflow.com/questions/73301824
复制相似问题