これらの構文の違いは何ですか? 2 番目よりも 1 番目の利点はありますか?
agent = Mechanize.new
# first
agent.get(url) do |page|
work
end
#second
page = agent.get(url)
いつ、どのような理由で使用する必要がありますか?
これらの構文の違いは何ですか? 2 番目よりも 1 番目の利点はありますか?
agent = Mechanize.new
# first
agent.get(url) do |page|
work
end
#second
page = agent.get(url)
いつ、どのような理由で使用する必要がありますか?
get メソッドを呼び出す 2 つの方法は、最終的に同じことを行います。どちらでもお好きな使い方ができます。ブロックを渡すことができる最初の方法は、より簡潔で読みやすいコードを記述するのに役立つ場合があります。ニーズに合ったものを選択するのはあなた次第です。たとえば、
agent = Mechanize.new
agent.get(url) do |page|
item = page.forms.first do |form|
form.fieldname = "foo"
end.submit
# do something with item
end
どちらがよりよく読めますか
page = agent.get(url)
form = page.forms.first
form.fieldname = "foo"
item = agent.submit(form).body
#do something with item
Mechanize の初期化を行う場合も同じケースが適用されます。私は好む
@agent = Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
agent.follow_meta_refresh = true
agent.redirect_ok = true
}
に
@agent = Mechanize.new
@agent.user_agent_alias = 'Mac Safari'
@agent.follow_meta_refresh = true
@agent.redirect_ok = true
}
それは好みの問題です。使用して読むのに適したスタイルを選択してください。最初の利点の 1 つは、割り当てを行う必要がないことですが、それほど重要ではありません (割り当てを避ける必要があるビューにコードがある場合を除きますが、これは別のトピックです)。