ruby
1a = [*1..3] #=> [1,2,3]
として、a
から[1,2]
を得たい、ということでしょうか。
素朴には、a.pop
した後のa
が求めるものですね。
ruby
1a = [*1..3]
2a.pop
3p a.pop #=> [1, 2]
a
を破壊したくない場合には、b = a.dup
してからb.pop
を実行すればよいです。
ruby
1a = [*1..3]
2b = a.dup
3b.pop
4p b #=> [1, 2]
a
だけでなんとかしたい場合は、a[-1]
が3
(配列の最後の要素)になることを利用して、Rangeを使うこともできます。
ruby
1a = [*1..3]
2a[0...-1] #=> [1, 2]
1..10
(ピリオド2つ)は1から10までですが、1...10
(ピリオド3つ)は1から9までになるのを利用しています。
..
を使う場合は、-1ではなく-2を使います。-1よりもさらに1つ分マイナス、です。
ruby
1a = [*1..3]
2a[0..-2] #=> [1, 2]
ちなみにRubyのリファレンスマニュアルの最新版は https://docs.ruby-lang.org/ja/latest/doc/index.html です。Array#popについては https://docs.ruby-lang.org/ja/latest/method/Array/i/pop.html をどうぞ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/08 12:51