2011-11-21 24 views
10

मैं मैं गूगल में पाया कोड का एक टुकड़ा समझना चाहते हैं। मेरी समझ के अनुसार i एक स्ट्रिंग में परिवर्तित किया जा रहा है। क्या यह सच है?रुबी में i.to_s का अर्थ क्या है?</p> <pre><code>i.to_s </code></pre> <p>ऊपर कोड <code>i</code> में एक पूर्णांक है:

+1

आप अनुमान सही है चुना है, 'to_s' विधि देता है एक वस्तु की स्ट्रिंग प्रतिनिधित्व (संख्या के उस मामले में' मैं 'घ)। लेकिन इस तरह के प्रश्नों के लिए मैं रूबी [दस्तावेज़ीकरण] (http://www.ruby-doc.org/) का उपयोग करने का सुझाव दूंगा। आप मानक पुस्तकालय से प्रत्येक विधि के लिए दस्तावेज पा सकते हैं। –

+0

आपको वास्तव में समझने योग्य धन्यवाद –

उत्तर

20

यह कहने के लिए बेहतर है कि यह पूर्णांक i के स्ट्रिंग प्रस्तुति को वापस करने वाला एक अभिव्यक्ति है। पूर्णांक स्वयं नहीं बदलता है। #pedantic।

आईआरबी

>> 54.to_s 
=> "54" 
>> 4598734598734597345937423647234.to_s 
=> "4598734598734597345937423647234" 
>> i = 7 
=> 7 
>> i.to_s 
=> "7" 
>> i 
=> 7 
2

यह सही है। to_s किसी भी ऑब्जेक्ट को एक स्ट्रिंग में परिवर्तित करता है, इस मामले में (शायद) एक पूर्णांक, क्योंकि चर को i कहा जाता है।

6

अन्य उत्तर में बताया गया है में, एक पूर्णांक पर .to_s बुला कि पूर्णांक की स्ट्रिंग प्रतिनिधित्व वापस आ जाएगी।

9.class   #=> Fixnum 
9.to_s   #=> "9" 
9.to_s.class #=> String 

लेकिन क्या आप भी यह डिफ़ॉल्ट बेस से बेस 36. यहाँ करने के लिए बेस 2 से कुछ भी करने के लिए = बदलने के लिए 10 .to_s लिए एक तर्क पारित कर सकते हैं प्रलेखन है: Fixnum to_s

1024.to_s(2) #=> "10000000000" 

: तो, उदाहरण के लिए, यदि आप इसे करने के लिए संख्या 1024 कन्वर्ट करने के लिए करना चाहता था (उर्फ बेस 2 है, जो केवल "1" और "0" किसी भी संख्या का प्रतिनिधित्व करने के उपयोग करता है), तुम कर सकते हो बाइनरी में बराबर है जब आप अक्षरों और संख्याओं के यादृच्छिक संयोजन उत्पन्न करना चाहते हैं तो बेस 36 में कनवर्ट करना उपयोगी हो सकता है, क्योंकि यह 0 से 9 तक प्रत्येक नंबर का उपयोग करके और फिर प्रत्येक अक्षर को z से गणना करता है। Base 36 explanation on Wikipedia

rand(36**3).to_s(36) 

करने के लिए: उदाहरण के लिए, निम्न कोड आप 3 वर्ण लंबा (संभव संयोजनों जो कुछ भी अधिकतम स्ट्रिंग लंबाई आप चाहते हैं, जो बढ़ जाती है के लिए 3 बदल) को पत्र और लंबाई 1 की संख्या के एक यादृच्छिक स्ट्रिंग दे देंगे बेहतर समझें कि अलग-अलग आधार प्रणालियों में संख्याएं कैसे लिखी जाती हैं, इस कोड को आईआरबी में डाल दें, बेस सिस्टम के लिए कोष्ठक में 36 को बदल दें जिसे आप सीखना चाहते हैं। जिसके परिणामस्वरूप प्रिंटआउट 0 से 35 की गणना होती है जो कभी आधार प्रणाली में आप

36.times {|i| puts i.to_s(36)} 
संबंधित मुद्दे