यह, रूबी के डिजाइन के अनुरूप है के रूप में आप पर ध्यान दें। अपरिवर्तनीय तार म्यूटेबल तारों से अधिक कुशल होते हैं - कम प्रतिलिपि, क्योंकि तारों का फिर से उपयोग किया जाता है - लेकिन प्रोग्रामर के लिए कड़ी मेहनत करते हैं। स्ट्रिंग्स को म्यूटेबल के रूप में देखना सहज है - आप उन्हें एक साथ जोड़ सकते हैं। इससे निपटने के लिए, जावा चुपचाप एक स्ट्रिंगबफर ऑब्जेक्ट के उपयोग में दो स्ट्रिंग्स के कॉन्सटेनेशन (+
के माध्यम से) का चुपचाप अनुवाद करता है, और मुझे यकीन है कि ऐसे अन्य हैक्स भी हैं। रुबी प्रदर्शन के खर्च पर डिफ़ॉल्ट रूप से तारों को विचलित करने के लिए चुनता है।
रूबी में कई विनाशकारी विधियां भी हैं जैसे String#upcase!
जो तारों पर विचलित होने पर भरोसा करते हैं।
एक अन्य संभावित कारण यह है कि रूबी पर्ल से प्रेरित है, और पर्ल उत्परिवर्तनीय तारों का उपयोग होता है।
रूबी के प्रतीक और जमे हुए स्ट्रिंग्स हैं, दोनों अपरिवर्तनीय हैं। एक अतिरिक्त बोनस के रूप में, प्रतीक प्रति संभावित स्ट्रिंग मान अद्वितीय होने की गारंटी दी जाती है।
नोट: मुझे रूबी के बारे में बहुत कम पता है। लेकिन मुझे भाषा डिजाइन में दिलचस्पी है। –
आप Matz क्यों नहीं पूछते हैं? –
@ सैम: हाहा, अच्छा बिंदु हम उससे बेहतर जवाब दे सकते हैं। मुझे उम्मीद है कि उसने कहीं इसके बारे में लिखा है और कोई मुझे इसके बारे में बता सकता है या सारांशित कर सकता है। –