आसान सवाल है, लेकिन यह डॉक्टर में नहीं मिला।
कैसे मैं nहमेशा के लिए एक स्ट्रिंग या सरणी से टुकड़ा करूँ ?
>> 'Austin'[1..3]
=> "ust"
>> 'Austin'[1..]
SyntaxError: compile error
(irb):2: syntax error, unexpected ']'
from (irb):2
आसान सवाल है, लेकिन यह डॉक्टर में नहीं मिला।
कैसे मैं nहमेशा के लिए एक स्ट्रिंग या सरणी से टुकड़ा करूँ ?
>> 'Austin'[1..3]
=> "ust"
>> 'Austin'[1..]
SyntaxError: compile error
(irb):2: syntax error, unexpected ']'
from (irb):2
जवाबों:
रिवर्स इंडेक्सिंग का उपयोग करें:
[1..-1]
रूबी (और कुछ अन्य भाषाओं) में एक तत्व सीधे आगे सूचकांक और एक "उलट" है। तो, लंबाई के साथ स्ट्रिंग nहै 0..(n-1)और अतिरिक्त (-n)..-1अनुक्रमित है, लेकिन कोई अधिक - यदि आप उपयोग नहीं कर सकते >=nया <-nअनुक्रमित।
'i' 'n'|'A' 'u' 's' 't' 'i' 'n'|'A' 'u' 's' 't' 'i' 'n'|'A' 'u' 's'
-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8
<- error | you can use this | error ->
1 का उपयोग करें :-)
'Austin'[1..-1] # => "ustin"
रूबी 2.6 में पेश की गई अंतहीन रेंज का उपयोग करके बहुत सुंदर :
string = 'Austin'
string[1..] # => ustin
आशा है कि किसी के लिए काम है। अब तक के सर्वश्रेष्ठ दृष्टिकोण के कुछ पात्रों को काटता है, और एक बार अंतहीन सीमाएं अपनाए जाने के बाद बहुत पठनीय हो जाएगा।