रूबी ने डबल कोट्स (""
) बनाम String.new
के साथ एक नई स्ट्रिंग को कैसे शुरू किया है, इसमें क्या अंतर है? जिज्ञासा और प्रयोग प्रयोजनों के लिए, मैं String#initialize
overrode:रूबी डबल कोट्स (उर्फ "") बनाम स्ट्रिंग.न्यू का मूल्यांकन कैसे करता है?
class String
def initialize
puts "I <3 bananas" # they're delicious!
end
end
क्या मैं यह पता लगाने की कोशिश कर रहा हूँ है: क्यों इन दो उदाहरणों अलग हैं?
# Calling the String class directly, I can declare banana love!
irb(main):054:0> String.new
I <3 bananas
=> ""
# Using double quotes, this string is not as tasty :(
irb(main):055:0> ""
=> ""
इस शोध के लिए कष्टप्रद है क्योंकि हर गूगल परिणाम बुनियादी रूबी वाक्य रचना पर ध्यान केंद्रित किया जा रहा है, और मैं रूबी दस्तावेज में कुछ भी खोजने के लिए नहीं कर पाए हैं है।
यदि आप इसके बजाय 'आवंटित' ओवरराइड करते हैं तो क्या होता है? –
@RyanBigg यह एक अच्छा विचार है, लेकिन इससे कोई फर्क नहीं पड़ता है। स्ट्रिंग अक्षर का मूल्यांकन किया जाता है और उनका ऑब्जेक्ट संकलित समय पर बनाया जाता है, दोनों 'प्रारंभिक' और 'आवंटित' दोनों को छोड़कर। –
@ दशहन कॉम्पूटिंग, धन्यवाद! ऐसा लगता है जैसे मुझे प्रारंभिक सामग्री को वापस करने के लिए स्रोत से रुबी को हैक करना और पुनः संयोजित करना होगा। मैं साहित्यिक पर और अधिक पढ़ूंगा। – amorphid