簡単な質問ですが、ドキュメントで見つかりませんでした。
文字列または配列を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]
Ruby(および他のいくつかの言語)の要素には、単純なインデックスと「逆」のインデックスがあります。したがって、長さのある文字列に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 ->