2

floatToIntBits并且intBitsToFloat是 Java 的 Float 类中的方法。Scala 有这些功能吗?

4

2 回答 2

5

由于 Scala 是一种 JVM 语言,因此您可以访问您正在使用的任何 Java 运行时的任何和所有功能。这是在 JVM 之上运行的所有语言的特征,这就是它如此受欢迎的原因(JRuby、Clojure 等)

您可能必须明确声明要访问 Java Float 类型的静态方法,因为 Scala 也有一个 Float 类,但除此之外您应该没问题。

java.lang.Float.floatToIntBits()

换句话说,Scala 没有理由实现这一点,因为 Java 已经做到了。如果您需要 Java 中已经存在的功能,只需使用 Java 实现即可。

关于您的澄清评论:

Integer.parseIntInteger类上的静态方法,以 aString作为其输入,而 ScalatoInt是在字符串之外的许多不同类的实例上常用的实例方法,用于提取整数表示。他们只是在非常松散的意义上“做”同样的事情;使用 aString作为输入Integer.ParseInt或调用toIntaString将获得相同的结果,但它们不是一回事,所以这不是一个非常恰当的比较。从设计角度和整体语言来看,它们公开了两个非常不同的接口。有一些重叠,正如我们在特定于字符串的情况中看到的那样,但在一般情况下,DRY哲学在这里非常重要,Scala 绝对不需要重新实现特定的东西,比如floatToIntBits

于 2013-03-07T00:20:59.680 回答
1

Scala 可以从 Java 中使用它们。

scala> java.lang.Float.floatToIntBits(1.0f)
res0: Int = 1065353216

scala> java.lang.Float.intBitsToFloat(1)
res1: Float = 1.4E-45
于 2013-03-07T00:21:18.133 回答