Scala有floatToIntBits和intBitsToFloat方法吗?

时间:2013-03-06 23:41:45

标签: java scala floating-point bit-manipulation

floatToIntBitsintBitsToFloat是Java Float类中的方法。 Scala有这些功能吗?

2 个答案:

答案 0 :(得分:5)

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

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

java.lang.Float.floatToIntBits()

换句话说,Scala没有理由实现它,因为Java已经这样做了。如果您需要Java中已存在的功能,请使用Java实现。

关于澄清意见:

Integer.parseIntInteger类上的静态方法,其中String为输入,而Scala的toInt是许多不同类的实例上常用的实例方法在字符串之外用于提取整数表示。他们只是在非常松散的意义上“做”同样的事情;使用String作为Integer.ParseInt的输入或在toInt上调用String将获得相同的结果,但他们不是相同事情,所以这不是一个非常恰当的比较。在设计方面,从整体上看语言,它们暴露出两种截然不同的界面。有一些重叠,正如我们在特定于字符串的情况下所看到的那样,但在一般情况下,DRY哲学在这里非常有用,其中Scala完全不需要重新实现像floatToIntBits

答案 1 :(得分:1)

Scala可以在Java中使用它们。

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

scala> java.lang.Float.intBitsToFloat(1)
res1: Float = 1.4E-45