2012-06-14 3 views

उत्तर

52

रूबी में, nil किसी ऑब्जेक्ट में (NilClass वर्ग का एक उदाहरण) इस पर विधियों को बुलाया जा सकता है। nil? रुबी में एक मानक विधि है जिसे पर सभी ऑब्जेक्ट्स पर कॉल किया जा सकता है और ऑब्जेक्ट और false के लिए true लौटाता है।

empty?पर ऑब्जेक्ट्स, हैश और स्ट्रिंग्स जैसी मानक रूबी विधि है। इसका सटीक व्यवहार विशिष्ट वस्तु पर निर्भर करेगा, लेकिन आमतौर पर यह true देता है यदि ऑब्जेक्ट में कोई तत्व नहीं है।

blank? एक मानक रूबी विधि नहीं है, लेकिन को रेल द्वारा सभी वस्तुओं जोड़ दिया जाता है और nil, false, खाली, या एक खाली स्थान के स्ट्रिंग के लिए true देता है। सभी वस्तुओं के लिए आप एक NoMethodError मिलेगा अगर आप nil पर empty? कहा जाता है तो blank? विधि कहते हैं if x.nil? || x.empty? रेल तरह बातें लिखने के लिए होने से बचाने के

क्योंकि empty? परिभाषित नहीं है।


का जवाब देने के बाद, मैंने पाया कि this question has been asked before ताकि आप जवाब उस प्रश्न का भी जांच होनी चाहिए।

22

इसे महसूस करें;)

शून्य?

nil.nil? 
#=> true 
[].nil? 
#=> false 
"".nil? 
#=> false 
" ".nil? 
#=> false 

ईएमपीटीई?

[].empty? 
#=> true 
nil.empty? 
#=> undefined method 
"".empty? 
#=> true 
" ".empty? 
#=> false 

ब्लैंक?

[].blank? 
#=> true 
nil.blank? 
#=> true 
"".blank? 
#=> true 
" ".blank? 
#=> true 
10

कोई रूबी चर एक वस्तु है, इसलिए इसे प्रारंभ/अनसेट (शून्य पर सेट) किया जा सकता है। nil? विधि सच रिटर्न अगर यह

b = nil 
b.nil? # true 
b = 'string value' 
b.nil? # false 

सरणियों, तार प्रारंभ नहीं किया गया है, माणिक में धाराओं कोई डेटा शामिल कर सकते हैं, तो वे खाली हो सकता है। empty? विधि रिटर्न सच तो अगर

array = [] 
array.empty? # true 
array << 5 << 4 # [5, 4] 
array.empty? # false 

string = "" # empty line 
string.empty? # true 

blank? ActiveSupport विशिष्ट विधि (किसी भी वस्तु में उपलब्ध है) है और ActiveSupport साथ RubyOnRails में उपलब्ध है। यदि वस्तु शून्य या खाली है तो यह सच हो जाता है।

+2

'खाली?'अगर ActiveSupport विधि – fl00r

+0

@ fl00r हाँ, तो आप सही हैं। मैं जवाब संपादित करूंगा – Ribtoks