2013-02-13 59 views
18

पायथन में एक 'पास' कथन का उपयोग कर सकते हैं कुछ भी नहीं करना:Coffeescript बराबर 'पास' बयान

if true: 
    pass 

वहाँ coffeescript में एक ऐसी ही बयान है? मैं एक स्विच स्टेटमेंट करने की कोशिश कर रहा हूं और कुछ शर्तों को पूरा करने पर कुछ भी नहीं कर रहा हूं।

switch variable: 
    when 5 then pass 
    else do variable 

उत्तर

16

, खाली ब्लॉक (आमतौर पर) CoffeeScript में मान्य हैं। तो आप बस का उपयोग कर सकते हैं:

switch variable: 
    when 5 then 
    else 
    variable 

ध्यान दें कि then बिना यह संकलन नहीं होगा, जो मैं थोड़ा अजीब लगता है। यह आमतौर पर काम करता है, हालांकि:

if x 
else if y 
    something() 
else 
    somethingElse() 

पूरी तरह से कॉफीस्क्रिप्ट मान्य है।

+3

यह मान्य हो सकता है , लेकिन यह पढ़ने के लिए थोड़ा अस्पष्ट लगता है। – 7yl4r

6

मैं हमेशा इस बात के लिए अर्धविराम का उपयोग करें: क्योंकि जावास्क्रिप्ट में, अर्धविराम एक वैध बयान जो भी कुछ भी नहीं करना होता है

switch variable 
    when 5 then ; 
    else do variable 

यह वह जगह है।

अद्यतन: मैंने बस ऐसा करने का एक और दिलचस्प तरीका सोचा। आप एक वैश्विक चर के रूप में pass को परिभाषित करने और undefined के लिए सेट कर सकते हैं:

window.pass = undefined 

switch variable 
    when 5 then pass 
    else do variable 

केवल एक चीज आप के लिए एक स्थानीय चर के रूप में pass का उपयोग कर या वैश्विक pass चर को पुनर्परिभाषित कर रहा है बाहर देखने के लिए। वह आपका कोड तोड़ देगा।

आप गूगल की क्लोजर संकलक का उपयोग करते हैं, तो आप इस चर व्याख्या कर सकता है इतना है कि यह एक निरंतर है:

`/** @const */ var pass;` 

लेकिन तब यह प्रत्येक फ़ाइल की शुरुआत में जाना होगा। हालांकि, स्वचालित रूप से ऐसा करने के लिए आप अपना खुद का प्रीप्रोसेसर लिख सकते हैं।

8

क्योंकि प्रत्येक अभिव्यक्ति का कॉफीस्क्रिप्ट में कोई मूल्य है, pass कीवर्ड, यदि यह अस्तित्व में है, तो यह मान undefined के बराबर होगा। तो, आप

pass = undefined 

निर्धारित कर सकते हैं और फिर बस अजगर की तरह pass का उपयोग करें: अजगर के विपरीत

switch variable 
    when 5 
    pass 
    else 
    do variable 
+0

आईएमओ यह सही उत्तर होना चाहिए – onetwopunch

16

मैं null के बाद से

switch x 
    when 1 
    null 
    when 2 
    y = 3 
    else 
    y = 4 

के एक खुश उपयोगकर्ता हूँ भाषा में पहले से ही है और अर्थ की दृष्टि से 'कुछ भी नहीं' का अर्थ परिवहन करता है।

+0

यह मेरा पसंदीदा जवाब है, लेकिन मुझे आश्चर्य है कि ';' का उपयोग करना होगा (एक बहुत छोटा सा) 'शून्य' से अधिक कुशल? – 7yl4r

1

यह coffeescript में मुझे समझ में आता है:

switch variable 
    when "a" then doSomething() 
    when "b" then break 

यह निम्न js को संकलित करता है:

switch (variable) { 
    case "a": 
     doSomething(); 
     break; 
    case "b": 
     break; 
} 

ध्यान दें: आप @flow तरह अशक्त उपयोग नहीं करना चाहिए पता चलता है, क्योंकि यह एक सम्मिलित करता है अनावश्यक बयान इस

null; 
+1

यह स्विच कथन के साथ अच्छी तरह से काम करता है, लेकिन 'पास' के लिए पूरी तरह से भर नहीं जाता है क्योंकि इसका उपयोग किसी अन्य/जैसे पास में नहीं किया जा सकता है। – 7yl4r