2012-09-22 69 views
15

嗨我只是嘗試了我的第一批scala,並已打這個錯誤,我不明白。我一直在努力解決這個問題,並用盡了我的想法。幫幫我?Scala:類型不匹配;發現:所需的單位:布爾

scala> def calculate(count: Int) : Boolean =  
    |   if (count<0) false 
<console>:8: error: type mismatch; 
found : Unit 
required: Boolean 
       if (count<0) false 
       ^

感謝

回答

28

你必須有一個else條款,否則,類型檢查不知道返回類型是什麼,當它的情況下count<0

def calculate(count: Int): Boolean =  
    if (count<0) false 
    else true 

或者,更好的是,你不需要if語句都:

def calculate(count: Int) = count >= 0 
+0

我要去後這一點。 – Borgleader

+0

穿過它!我知道這一定很簡單!謝謝。 – Inti

+5

準確地說,編譯器_does_知道返回類型。沒有'else'分支的'if'語句的結果類型爲'Unit'(這就是錯誤所說的),所以'if(count <0)false'是'if(count <0)的簡寫else else()' 。 –

相關問題