文字列[1 ..- 1]の仕事ではなく、文字列は、次のブロックでは、ruit
はなぜ[-3..1]
puts "fruit"[1..-1]
が表示されますんこの場合無限大
f r u i t
0 1 2 3 4
逆インデックスを使用する場合は、機能しません。私は、これは0として、ruit
を返すことを期待するのと同じロジックで
は無限大
puts "fruit"[-4..0]
f r u i t
-5 -4 -3 -2 -1
は、しかし、これは実際には何も返しません表します。いくつかの進歩が4
puts "fruit"[-5..1]
f r u i t
-5 -4 -3 -2 -1
の代わりに5でそれをしようと
- それはちょうどr
を返す0
puts "fruit"[-4..1]
f r u i t
-5 -4 -3 -2 -1
の代わりに1を再度試みますそれはfr
を返します。
-
しかし、私は逆インデックスを理解できないようです。 [1..-1]
の-1
は無限大ではありませんか?なぜあなたは逆をしようとすると動作しないのですか?
私はruby配列のドキュメントを見ています.0は最初の要素[-3..1]が3番目の最後の要素から2番目の要素になり、何も返さないことを意味します。 http://ruby-doc.org/core-2.2.0/Array.html要素へのアクセスを見てください。 [1 .. -1]の-1は最後の要素を意味します。 –
私はこれを見てきましたが、私が理解できない唯一のことは[1 .. 1]も同様に非論理的であるということです。 2番目の要素から1番目の要素、最後の要素まで続き、最後に – apdm
Rubyは左から右に作用するので、2番目の下降というより2番目の最後(5番目)になります。 –