Kotlin的BigInteger

时间:2017-05-31 14:27:33

标签: kotlin biginteger

我需要使用BigInteger,但在kotlin中找不到类似的东西。

在kotlin中有没有替代类到BigInteger的java?

我应该将java类导入kotlin吗?

3 个答案:

答案 0 :(得分:15)

java.math.BigInteger可以像任何其他Java类一样在Kotlin中使用。甚至有helpers in stdlib使常见操作更易于读写。您甚至可以自己扩展帮助程序以获得更高的可读性:

import java.math.BigInteger

fun Long.toBigInteger() = BigInteger.valueOf(this)
fun Int.toBigInteger() = BigInteger.valueOf(toLong())

val a = BigInteger("1")
val b = 12.toBigInteger()
val c = 2L.toBigInteger()

fun main(argv:Array<String>){
    println((a + b)/c) // prints out 6
}

答案 1 :(得分:3)

你可以使用Kotlin的任何内置Java类,你应该这样做。它们的工作方式与Java中的完全相同。 Kotlin强调使用Java平台提供的功能而不是重新实现它们;例如,没有Kotlin特定的集合,只有Java集合上的一些接口,标准库也使用这些集合。

所以是的,你应该使用java.math.BigInteger。作为奖励,当您使用来自Kotlin的BigInteger时,您实际上可以使用运算符而不是函数调用:+而不是add-而非subtract等等。

答案 2 :(得分:1)

或者,如果您要构建多平台(在Kotlin 1.2和1.3中进行实验),则可以使用https://github.com/gciatto/kt-math(我没有从属关系,只不过我正在使用它)。它基本上是纯Kotlin中的java.math。*(作为MPP的一部分,还有一些特定于平台的附加功能)。对我来说真的很有用。