<%if @item.rigged %>Yes<%else%>No<%end%>
मैं ऐसा ही कुछ सोच रहा था?
if @item.rigged ? "Yes" : "No"
लेकिन यह काम नहीं करता है। रूबी के पास है, ||=लेकिन मुझे यकीन नहीं है कि उस चीज़ का उपयोग कैसे करना है।
<%if @item.rigged %>Yes<%else%>No<%end%>
मैं ऐसा ही कुछ सोच रहा था?
if @item.rigged ? "Yes" : "No"
लेकिन यह काम नहीं करता है। रूबी के पास है, ||=लेकिन मुझे यकीन नहीं है कि उस चीज़ का उपयोग कैसे करना है।
जवाबों:
निकालें ifसेif @item.rigged ? "Yes" : "No"
टर्नरी ऑपरेटर के पास फॉर्म है condition ? if_true : if_false
s/that/not that :)
रूबी में, स्थिति और अभिव्यक्ति के thenहिस्से को ifएक अभिव्यक्ति विभाजक (यानी ;या एक नई पंक्ति) या thenकीवर्ड द्वारा अलग किया जाना चाहिए ।
तो, ये सभी काम करेंगे:
if @item.rigged then 'Yes' else 'No' end
if @item.rigged; 'Yes' else 'No' end
if @item.rigged
'Yes' else 'No' end
रूबी में एक सशर्त ऑपरेटर भी है, लेकिन यह पूरी तरह से अनावश्यक है। सशर्त ऑपरेटर, सी में की जरूरत है क्योंकि यह एक ऑपरेटर है: सी में, ifएक मूल्य वापस नहीं लौट सकते एक बयान है और इस तरह, इसलिए यदि आप एक मूल्य के वापस जाने के लिए चाहते हैं, आप जो कुछ उपयोग करने की आवश्यकता कर सकते हैं कोई मान। और सी में एकमात्र चीजें जो एक मान लौटा सकती हैं वे फ़ंक्शन और ऑपरेटर हैं, और चूंकि ifसी में फ़ंक्शन करना असंभव है, इसलिए आपको एक ऑपरेटर की आवश्यकता है।
रूबी में, हालांकि, ifएक अभिव्यक्ति है। वास्तव में, रूबी में सब कुछ एक अभिव्यक्ति है, इसलिए यह पहले से ही एक मूल्य वापस कर सकता है। सशर्त ऑपरेटर को यहां तक कि मौजूद रहने की कोई आवश्यकता नहीं है , अकेले इसका उपयोग करें।
BTW: यह नाम विधियों का प्रथागत है, जिनका उपयोग प्रश्न चिह्न के साथ अंत में प्रश्न पूछने के लिए किया जाता है, जैसे:
@item.rigged?
यह रूबी में सशर्त ऑपरेटर का उपयोग करने के साथ एक और समस्या दिखाता है:
@item.rigged? ? 'Yes' : 'No'
एक-दूसरे के करीब कई सवालिया निशान पढ़ना मुश्किल है।
एक पंक्ति यदि:
<statement> if <condition>
आपका मुकदमा:
"Yes" if @item.rigged
"No" if !@item.rigged # or: "No" unless @item.rigged
"No" unless @item.riggedरोकने के लिए!
nilके बजाय 'Yes'अगर item.riggedसच है। nilयदि शर्त पूरी नहीं होती है तो एकल-पंक्ति या जब तक कि बयान वापस नहीं आते हैं।
जो मुझे पता है
3 एक-लाइनर
a = 10 if <condition>उदाहरण:
a = 10 if true # a = 10
b = 10 if false # b = nil
a = 10 unless <condition>उदाहरण:
a = 10 unless false # a = 10
b = 10 unless true # b = nil
a = <condition> ? <a> : <b>उदाहरण:
a = true ? 10 : 100 # a = 10
a = false ? 10 : 100 # a = 100
मुझे उम्मीद है यह मदद करेगा।
दोनों शेल और सी एक-लाइन निर्माण कार्य (रूबी 1.9.3p429):
# Shell format
irb(main):022:0> true && "Yes" || "No"
=> "Yes"
irb(main):023:0> false && "Yes" || "No"
=> "No"
# C format
irb(main):024:0> true ? "Yes" : "No"
=> "Yes"
irb(main):025:0> false ? "Yes" : "No"
=> "No"
यदि अन्य शर्त को टर्नरी ऑपरेटर के साथ कवर किया जा सकता है
@item.rigged? ? 'Yes' : 'No'
आप उपयोग कर सकते हैं ----
(@ item.rigged)? "हाँ नही"
यदि @ आइटम.ग्रेस्ड सत्य है, तो वह 'हां' लौटाएगा, अन्यथा वह 'नहीं' लौटाएगा