はじめに
今回は配列に関する内容です。配列の添字演算子については、GoldではなくSilverの範囲だろうと油断していたら突然試験に出てきて理解があっているか不安になったのでまとめてみます。
確認してみた
環境はruby2.5.3です。
配列[1,2,3,4,5,6,7,8]から[4,5,6]のみを取得する方法として、下記を実行する。
ary = [1,2,3,4,5,6,7,8]
ary[3..-3]
ary[3..5]
ary[3...6]
ary[3...-2]
ary[3,3]
すると、
irb(main):001:0> ary = [1,2,3,4,5,6,7,8]
=> [1, 2, 3, 4, 5, 6, 7, 8]
irb(main):002:0> ary[3..-3]
=> [4, 5, 6]
irb(main):003:0> ary[3..5]
=> [4, 5, 6]
irb(main):004:0> ary[3...6]
=> [4, 5, 6]
irb(main):005:0> ary[3...-2]
=> [4, 5, 6]
irb(main):006:0> ary[3,3]
=> [4, 5, 6]
全ての結果が[4,5,6]となった。
各取得方法の詳細については下記となっています。
ary[3..-3]:3番目から-3番目までの要素(一番最後を-1として最初に近づくにつれて-1される)までを取得する
ary[3..5]:3番目から5番目までの要素を取得する
ary[3...6]:3番目から5番目までの要素を取得する(6番目は含まない)
ary[3...-2]:3番目から-3番目までの要素を取得する(-2番目は含まない)
ary[3,3]:3番目から3個分の要素を取得する
おわりに
確認した結果、添字演算子での添字指定方法は少なくても5パターン存在することが分かりました。各パターンの理解がごちゃごちゃになった時の整理にこちらの記事をご活用いただければ幸いです。誤り等ありましたらご指摘いただけますと助かります!
参考