想不通有什麼錯此代碼:scala 2.10:爲什麼會出現類型不匹配?
trait NumberLike
{
def plus[T](a: T, b: T): T
}
class IntegerNumberLike extends NumberLike
{
def plus[Int](a: Int, b: Int): Int = 2 // type mismatch; found : scala.Int(2) required: Int
}
但如果我這樣做,這樣一來,它的工作原理:
trait NumberLike[T]
{
def plus(a: T, b: T): T
}
class IntegerNumberLike extends NumberLike[Int]
{
def plus(a: Int, b: Int): Int = 2
}
所以,我有兩個問題:
- 爲什麼第一個代碼示例不起作用?
- 一般來說,何時應該使用類類型參數,何時應該使用方法類型參數?