2012-09-22 8 views
15

हाय मैं सिर्फ स्केल के अपने पहले बिट्स को आजमा रहा हूं और इस त्रुटि को दबा दिया है जिसे मैं समझ नहीं पा रहा हूं। मैं इसे काम करने की कोशिश कर रहा हूं और अपने विचारों को समाप्त कर दिया है। मदद?स्कैला: मिस्चैच टाइप करें; मिला: यूनिट आवश्यक: बूलियन

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 है, एक else खंड करना होगा।

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

या, बेहतर अभी तक, आप अगर बयान बिल्कुल जरूरत नहीं है:

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

मैं पोस्ट ठीक करने वाला था। – Borgleader

+0

इसे कम करें! मुझे पता था कि यह कुछ आसान होना चाहिए! धन्यवाद। – Inti

+5

सटीक होने के लिए, कंपाइलर _does_ वापसी प्रकार को जानता है। '''' शाखा के बिना 'if' कथन का परिणाम' यूनिट '(और यही त्रुटि है) का प्रकार है, इसलिए' अगर (गिनती <0) झूठी '' if (count <0) झूठी अन्य के लिए छोटा है() ' । –

संबंधित मुद्दे