2012-11-15 83 views
0

當我嘗試執行以下代碼時,爲什麼會出現錯誤(value apply is not a member of scala.math.BigInt)?在BigInt上調用apply方法時出錯

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

BigInt#apply在ScalaDoc中定義。我也嘗試過使用隱式apply方法調用,它也不起作用:

a("123", 36); 

(而第二個問題:這是真的所有對象,調用()等於調用object.applyobject apply?)

回答

6

BigInt#apply指的是object BigInt,而不是class BigInt。具體調用此方法執行以下操作:

BigInt.apply("123", 36) 

,或者因apply是特殊的方法,它看起來像功能應用:

BigInt("123", 36) 
3

apply()BigIntcompanion object的方法,而不是BigInt類本身。因此,您可以說:

val a = BigInt("123", 36) 

此外,您對a("123", 36)有什麼期望? BigInt是不可變的。

相關問題