当我尝试执行以下代码时,为什么会出现错误(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.apply
或object apply
?)
答案 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
是不可变的。