リンクされたリストに似たものとして Ruby で配列を使用しています。したがってary = [1,2,3]
、ノードを挿入する必要がありary.insert(2,99)
ます[1,2,99,3]
ここで質問: どうすれば逆にできますか?? ary.extract(2)
配列を返し99
、状態のままにする関数が存在することを望みます[1,2,3]
リンクされたリストに似たものとして Ruby で配列を使用しています。したがってary = [1,2,3]
、ノードを挿入する必要がありary.insert(2,99)
ます[1,2,99,3]
ここで質問: どうすれば逆にできますか?? ary.extract(2)
配列を返し99
、状態のままにする関数が存在することを望みます[1,2,3]
あなたはdelete_atのようなものですか?
1.9.3p125 :017 > ary = [1,2,3]
=> [1, 2, 3]
1.9.3p125 :018 > ary.insert(2,99)
=> [1, 2, 99, 3]
1.9.3p125 :019 > ary.delete_at(2)
=> 99
1.9.3p125 :020 > ary
=> [1, 2, 3]
1.9.3p125 :021 >
または、インデックスの代わりに値で移動したい場合は、deleteがあります:
1.9.3p125 :021 > ary = [1,2,3]
=> [1, 2, 3]
1.9.3p125 :022 > ary.insert(2,99)
=> [1, 2, 99, 3]
1.9.3p125 :023 > ary.delete(99)
=> 99
1.9.3p125 :024 > ary
=> [1, 2, 3]
2 番目のバージョンの小さな落とし穴:重複がある場合、値のすべての出現を削除します。
slice
トリックを行います:
a = [1,2,99,3]
v = a.slice! 2
p v
# => 99
p a
# => [1, 2, 3]