Scala:为什么Float.floatToIntBits(2f)失败了?

时间:2010-08-22 16:56:14

标签: scala

scala> Float.floatToI

在此处按下标签时,会显示Float.floatToIntBits。但是,

scala> Float.floatToIntBits(2f)
<console>:6: error: value floatToIntBits is not a member of object Float
       Float.floatToIntBits(2f)
             ^

2 个答案:

答案 0 :(得分:5)

Float.floatToIntBits尝试在对象scala.runtime.Float上调用方法(我认为)。

scala> Float
res2: Float.type = object scala.Float

您需要java.lang.Float.floatToIntBits

scala> java.lang.Float.floatToIntBits(2f)
res1: Int = 1073741824

答案 1 :(得分:4)

REPL代码完成显示路径上可用的所有Float个对象的方法(即 scala.Float scala.runtime.Floatjava.lang.Float)。但是 scala.Float scala.runtime.Float优先于java.lang.Float,因此错误。

以下作品:

scala> import java.lang.{Float => JFloat}
import java.lang.{Float=>JFloat}

scala> JFloat.floatToIntBits(2f)
res5: Int = 1073741824