web-dev-qa-db-ja.com

コトリンのBigInteger

BigIntegerを使用する必要がありますが、kotlinで同様のものが見つかりません。

JavaのBigIntegerに代わるKotlinのクラスはありますか?

または

Javaクラスをkotlinにインポートする必要がありますか?

15
Akshar Patel

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
}
17
miensol

組み込みのJava Kotlinのクラスはどれでも使用できます。使用する必要があります。これらのクラスはすべて、Javaでの場合とまったく同じように動作します。Kotlinは、 Javaプラットフォームはそれらを再実装する代わりに提供する必要があります。たとえば、Kotlin固有のコレクションはありません。Javaコレクションの上にいくつかのインターフェースがあり、標準ライブラリはこれらのコレクションも使用します。

したがって、はい、Java.math.BigInteger。おまけとして、KotlinのBigIntegerを使用すると、関数呼び出しの代わりに演算子を実際に使用できるようになります:+の代わりにadd-の代わりにsubtractなど.

4
zsmb13

または、マルチプラットフォーム用にビルドしている場合(Kotlin 1.2および1.3で実験的)、 https://github.com/gciatto/kt-math を使用できます(私は所属していませんが、それを使用して)。基本的には、純粋なKotlinでのJava.math。*です(MPPの一部としていくつかのプラットフォーム固有の追加機能があります)。それは私にとって本当に便利です。

1
Hack5