2012-09-22 10 views
15

こんにちは私はちょうどスカラの最初のビットを試していると私は理解していないこのエラーを打った。私はそれを解決しようとしていて、私の考えを尽くしました。助けて?あなたはelse句を持っている必要がスカラ:タイプの不一致。 found:ユニットが必要です:ブール

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

おかげ

答えて

28

、そうでない場合は型チェッカーはそれが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

正確には、コンパイラは戻り値の型を知っていません。 'else'ブランチのない' if'ステートメントの結果の型は 'Unit'です(エラーの内容)。' if(count <0)false'は 'if(count <0)false else()'の略です。 。 –

関連する問題