rtpersonの答えはJavaの観点からは正しいですが、Scalaでは、sでできることよりscala.BigInt
もsで多くのことができますjava.math.BigInteger
。
例えば:
scala> val a = new BigInteger("26525285981219105863630848482795");
a: java.math.BigInteger = 26525285981219105863630848482795
scala> a + a
:7: error: type mismatch;
found : java.math.BigInteger
required: String
a + a
クラスをインスタンス化するためのScalaの標準的な方法は、
コンパニオンオブジェクトにあるファクトリを使用することです。ScalaでFoo(args)を書くと、これはFoo.apply(args)に変換されます。ここで、Fooはシングルトンオブジェクト(コンパニオンオブジェクト)です。したがって、sを構築する方法を見つけるために、Scalaライブラリーのオブジェクト、特にその構築物BigInt
を見ることができます。BigInt
apply
したがって、anを構築する3つの方法は次のとおりです。解析するために、a、a、またはaをBigInt
渡します。例:Int
Long
String
scala> val x = BigInt(12)
x: BigInt = 12
scala> val y = BigInt(12331453151315353L)
y: BigInt = 12331453151315353
scala> val z = BigInt("12124120474210912741099712094127124112432")
z: BigInt = 12124120474210912741099712094127124112432
scala> x + y * z
res1: BigInt = 149508023628635151923723925873960750738836935643459768508
で自然に見える算術演算を実行できるという優れた点に注意してください。これは、 !BigInt
では不可能です。BigInteger