Elixir

2016-06-25 20 views
5

में टर्नरी ऑपरेटर अनुकरण करें Elixir में इसी तरह की सशर्त एक-पंक्ति जांच कैसे करें?Elixir

if (x > 0) ? x : nil 

क्या यह इलीक्सिर दुनिया में एकमात्र समतुल्य है?

if true, do: 1, else: 2 

उत्तर

7
मेरे लिए

, अगर एक त्रिगुट ऑपरेटर के बराबर है के रूप में यह एक मूल्य है जो विभिन्न अन्य भाषाओं के लिए यह नहीं करता है 'का मूल्यांकन टी।

तो x = if false, do: 1, else: 2

मूल रूप से है x = false? 1 : 2

सुनिश्चित नहीं हैं कि क्यों रूबी इसे अपनाया (यदि आप रूबी से आ रहे हैं) के रूप में यह है, तो बयान को आबंटित है। सी में टर्नरी बयान के बराबर कोड कोड के रूप में उपयोगी है। निस्संदेह सी प्रोग्रामर बेकारता के लिए हताश हो गए और नेस्टेड टर्नरीज पर घोंसले किए गए कई लोग :)

+1

http://elixir-examples.github.io/examples/ternary –

10

हां, एलिक्सीर में एक टर्नरी ऑपरेटर की तरह कुछ भी नहीं है। if का कीवर्ड संस्करण शायद सबसे नज़दीकी चीज है।

if condition, do: true_expr, else: flase_expr 
+0

कृपया इसका मतलब दें कि आपका क्या मतलब है। –

4

मैं एक tweet में इस विकल्प को देखा,

is_it_true && "TRUE" || "FALSE" 
+4

ध्यान दें कि इसमें एक बड़ा गॉचा है: 'is_it_true && false || : foobar' हमेशा वापस लौटाएगा: foobar' और कभी 'झूठा' नहीं। ऐसा इसलिए है क्योंकि 'x' और 'false 'के किसी भी मान के लिए' x && false' हमेशा झूठी मान का मूल्यांकन करेगा। x' 'x' के किसी भी मान के लिए हमेशा' x' का मूल्यांकन करेगा। यदि आपके पास 'झूठी' के बजाय 'nil' है तो वही गोचा लागू होता है। –

+0

'ए = सत्य और 1 || || 2', अगर आप इसे अच्छी तरह से ढांचा देते हैं तो मुझे यहां गॉचा नहीं दिखाई देता है। – Besto