BigIntegerを使用する必要がありますが、kotlinで同様のものが見つかりません。
JavaのBigIntegerに代わるKotlinのクラスはありますか?
または
Javaクラスをkotlinにインポートする必要がありますか?
Java.math.BigInteger
は、他のすべてのJavaクラスと同様にKotlinで使用できます。一般的な操作を読み書きしやすくする 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
}
組み込みのJava Kotlinのクラスはどれでも使用できます。使用する必要があります。これらのクラスはすべて、Javaでの場合とまったく同じように動作します。Kotlinは、 Javaプラットフォームはそれらを再実装する代わりに提供する必要があります。たとえば、Kotlin固有のコレクションはありません。Javaコレクションの上にいくつかのインターフェースがあり、標準ライブラリはこれらのコレクションも使用します。
したがって、はい、Java.math.BigInteger
。おまけとして、KotlinのBigInteger
を使用すると、関数呼び出しの代わりに演算子を実際に使用できるようになります:+
の代わりにadd
、-
の代わりにsubtract
など.
または、マルチプラットフォーム用にビルドしている場合(Kotlin 1.2および1.3で実験的)、 https://github.com/gciatto/kt-math を使用できます(私は所属していませんが、それを使用して)。基本的には、純粋なKotlinでのJava.math。*です(MPPの一部としていくつかのプラットフォーム固有の追加機能があります)。それは私にとって本当に便利です。