Kotlin数字文字

gkt*_*414 5 kotlin

我注意到我可以将double值转换成这样的整数。

var array = kotlin.arrayOfNulls<Int>(10)

for( i in array.indices ){
    array[i] = ( Math.random().toInt() )
}
Run Code Online (Sandbox Code Playgroud)

如果Math.random()返回一个双精度值,双精度值如何有一个名为toInt()的方法?数值也是对象吗?

Oli*_*rth 5

是的,数字类型的实例是Kotlin对象。引用Kotlin文档

在Kotlin中,从我们可以在任何变量上调用成员函数和属性的意义上说,一切都是对象。某些类型是内置的,因为它们的实现已优化,但是对用户而言,它们看起来像普通的类。

实际上,使用JVM原语在幕后表示了不可为空的实例(例如Double与相对Double?)。


Mak*_*oto 1

在 Java 中,任何扩展的对象Number都能够调用intValue. 我认为 Kotlin 在那里公开了该 API。