比賽,我很新的斯卡拉,但我相信我已經寫了一個完全合法的Scala程序:Scala的類型不匹配錯誤時,函數簽名函數調用
這是Scala的工作表:
def product(f: Int => Int)(a: Int, b: Int): Int =
if (a > b) 1 // Not a 0 because the unit value of product is a 1
else f(a) * product(f)(a + 1, b)
product(x => x * x)(3, 7)
不過,我得到以下錯誤:
> <console>:8: error: type mismatch;
found : Unit
required: Int
if (a > b) 1 // Not a 0 because the unit value of product is a 1 else f
(a) * product(f)(a + 1, b)
^
> <console>:8: error: not found: value product
product(x => x * x)(3, 7)
^
這是一個簡單的產品,從a
到b
乘以數量的所有平方 包括的。
它說,有我的函數調用,但是,這應該是完全合法的,因爲我通過一個lambda函數返回Int
。任何有關這個問題的幫助和如何處理type mismatch
錯誤將深表感謝。使用Scala 2.10.2
。
親愛的主,它適用於repl,但不適用於工作表。在學習Scala時,該工作表是不是很好用? –