在BigInt上调用apply方法时出错

时间:2012-11-15 20:28:26

标签: scala

当我尝试执行以下代码时,为什么会出现错误(value apply is not a member of scala.math.BigInt)?

var a : BigInt = 12;
a.apply("123", 36);

BigInt#apply在ScalaDoc中定义。我也尝试使用隐式apply方法调用,它也不起作用:

a("123", 36);

(第二个问题:对于所有对象是真的,调用()等于调用object.applyobject apply?)

2 个答案:

答案 0 :(得分:6)

BigInt#apply是指object BigInt,而不是class BigInt。具体来说,调用此方法执行以下操作:

BigInt.apply("123", 36)

或者,因为apply是看起来像函数应用程序的特殊方法:

BigInt("123", 36)

答案 1 :(得分:3)

apply()BigInt companion object的方法,而不是BigInt类本身。因此你可以说:

val a = BigInt("123", 36)

此外,您对a("123", 36)的期望是什么? BigInt是不可变的。