ऐसा लगता है कि कॉफीस्क्रिप्ट स्वचालित रूप से अंतिम वस्तु को एक दायरे में लौटा देता है। क्या मैं इस कार्यक्षमता से बच सकता हूँ?
ऐसा लगता है कि कॉफीस्क्रिप्ट स्वचालित रूप से अंतिम वस्तु को एक दायरे में लौटा देता है। क्या मैं इस कार्यक्षमता से बच सकता हूँ?
जवाबों:
आपको स्पष्ट रूप से कुछ भी वापस नहीं करना है, या अपने फ़ंक्शन के निचले भाग में अपरिभाषित का मूल्यांकन करने वाली अभिव्यक्ति को छोड़ना है:
fun = ->
doSomething()
return
या:
fun = ->
doSomething()
undefined
यह वह है जो डॉक्टर की सलाह देता है, जब समझ का उपयोग करते हैं:
सावधान रहें कि आप गलती से इन मामलों में समझ के परिणामों को नहीं लौटा रहे हैं , अपने फ़ंक्शन के निचले हिस्से में सार्थक रिटर्न मान - जैसे कि सच्चा - या अशक्त जोड़कर ।
हालाँकि, आप इस तरह एक आवरण लिख सकते हैं:
voidFun = (fun) ->
->
fun(arguments...)
return
( यहां पर आपरेट संचालक को नोटिस दें ...
)
और फ़ंक्शंस को परिभाषित करते समय इसका उपयोग करें:
fun = voidFun ->
doSomething()
doSomethingElse()
या इस तरह:
fun = voidFun(->
doSomething()
doSomethingElse()
)
return
, undefined
या null
मेरी समारोह के अंत में। हालाँकि, जोड़ना null
मुझे किसी कारण से गलत लगता है। क्या मैं इसे तीनों में से सबसे खराब विकल्प मान सकता हूं?
undfined
अंत में छोड़ना है । एक खाली return
कथन का उपयोग करने से फ़ंक्शन के अंत में बेहतर रिटर्न देने के लिए कुछ भी नहीं लगता है undefined
, इसलिए खाली return
बेहतर विकल्प लगता है।
fun(arguments...)
, कॉल करना बेहतर होगा fun.apply(this, arguments)
।
हाँ, return
किसी फ़ंक्शन की अंतिम पंक्ति के रूप में।
उदाहरण के लिए,
answer = () ->
42
extrovert = (question) ->
answer()
introvert = (question) ->
x = answer()
# contemplate about the answer x
return
यदि आप यह देखना चाहते हैं कि कॉफी किस js को संकलित करती है, तो http://bit.ly/1enKdRl देखें । (मैंने अपने उदाहरण के लिए कॉफ़ीस्क्रिप्ट रीडक्स का उपयोग किया है)
बस कुछ मजेदार (ctional)
suppressed = _.compose Function.prototype, -> 'do your stuff'
Function.prototype
अपने आप में एक फ़ंक्शन है जो हमेशा कुछ भी नहीं लौटाता है। आप इस ब्लैकहोल में अपने रिटर्न मान को पाइप करने के लिए कंपोज़ का उपयोग कर सकते हैं और रचित फ़ंक्शन कभी भी कुछ भी नहीं लौटाएगा।
ऐसा लगता है कि CoffeeScript में फ़ंक्शंस हमेशा कुछ लौटाना चाहिए, यहां तक कि null
। सी में, आपके पास void
रिटर्न प्रकार है।
->
, खाली फ़ंक्शन, संकलन करता है (function() {})
, इसलिए यह एकमात्र फ़ंक्शन है जो कुछ भी वापस नहीं करता है।
return;
शून्य मान वापस करने के लिए C, JavaScript और CoffeeScript में काम करता है।