6

私は、Learning Ruby the Hard Way online に取り組んでいます。誰かの壊れたコードを修正する「テスト」である 26 番目の演習を終えたところです。

私の問題は、 pop メソッドで引数を使用することで発生しました。私は基本に精通していますが、正解は引数を「-1」から「1」に変更することを意味し、それが何を意味するのか正確にはわかりません。

問題の行は次のとおりです。

def puts_last_word(words)
    word = words.pop(1)
    puts word
end

配列から2番目の要素がポップされると思いますが、確認またはヘルプのいずれか適切な方が必要です。

4

2 に答える 2

4

Array#pop のドキュメントで最もよく確認できます: http://rubydoc.info/stdlib/core/1.9.3/Array:pop

それによると、引数は、配列の後ろから数えて削除する要素の数を指定します。

pop()との唯一の違いpop(1)は、前者は単一の要素 (削除された要素) を返すのに対して、後者は単一の要素 (削除された要素) を持つ配列を返すことです。

編集:テストが使用された理由は、最後の要素を意味するを使用した配列アクセスと、引数として位置ではなく量を期待する のようなメソッド-1の違いについて教えるためだと思います。#[]-1pop

于 2011-12-06T23:44:09.537 に答える
2

引数は、ポップするアイテムの数を指定します。引数を指定すると配列が返されますが、引数を指定しないと要素だけが返されます。

ruby-1.8.7-p352 :006 > a = [1,2,3]
=> [1, 2, 3] 
ruby-1.8.7-p352 :007 > a.pop(1)
=> [3] 
ruby-1.8.7-p352 :008 > a = [4,5,6]
=> [4, 5, 6] 
ruby-1.8.7-p352 :009 > a.pop(2)
=> [5, 6]
ruby-1.8.7-p352 :010 > a.pop
=> 4 
于 2011-12-06T23:48:05.910 に答える