बिना संकलन नहीं है यहां कार्यक्रम जाओ में किसी संख्या का फ़ैक्टोरियल मिल रहा है: जब इनपुट 5 पर बुलाया 120. हालांकि हैजाओ कोड किसी न पहुंचने योग्य वापसी कथन
func factorial(x uint) uint {
if x == 0 {
return 1
}
return x * (factorial(x - 1))
}
इस कार्य के लिए उत्पादन, अगर मैं else
कथन जोड़ता हूं तो मुझे एक त्रुटि मिलती है।
func factorial(x uint) uint {
if x == 0 {
return 1
} else {
return x * (factorial(x - 1))
}
}
त्रुटि: function ends without a return statement
मैं अंत में एक return
कहा:
func factorial(x uint) uint {
if x == 0 {
return 1
} else {
return x * (factorial(x - 1))
}
fmt.Println("this never executes")
return 1
}
और मैं क्यों दूसरे मामले एक कारण होगा 120
की उम्मीद उत्पादन वापस मिल त्रुटि? तीसरे मामले में क्यों समारोह कभी भी पिछले return 1
तक नहीं पहुंचता है, यह सही आउटपुट की गणना करता है?
यह 'id cond {return} का उपयोग करने के लिए जाने में मूर्खतापूर्ण है; वापसी '(स्पष्ट रूप से एक पंक्ति पर नहीं)। जब आपके पास लूप के लिए अंतहीन होता है जहां लूप के बाद कुछ भी निष्पादित नहीं होता है, तो सामान्य मुहावरे 'आतंक ("पहुंच योग्य नहीं)' जोड़ना है। –
अंतिम बयान एक 'आतंक ("कभी नहीं पहुंचा") बनाओ ' – thwd