如果我有一个循环,比如
users.each do |u|
#some code
end
其中users是多个用户的散列。如果你是用户散列中的最后一个用户,并且只想为最后一个用户执行特定代码,那么最简单的条件逻辑是什么
users.each do |u|
#code for everyone
#conditional code for last user
#code for the last user
end
end
如果我有一个循环,比如
users.each do |u|
#some code
end
其中users是多个用户的散列。如果你是用户散列中的最后一个用户,并且只想为最后一个用户执行特定代码,那么最简单的条件逻辑是什么
users.each do |u|
#code for everyone
#conditional code for last user
#code for the last user
end
end
9条答案
按热度按时间vql8enpb1#
ruarlubt2#
如果是非此即彼的情况,您将一些代码应用于所有 * 但 * 最后一个用户,然后将一些唯一的代码应用于 * 仅 * 最后一个用户,则其他解决方案之一可能更合适。
但是,您似乎为所有用户运行相同的代码,并为最后一个用户运行一些 * 额外的 * 代码。如果是这样的话,这似乎更正确,更清楚地说明了你的意图:
vm0i2vca3#
我认为最好的方法是:
czq61nw14#
你试过
each_with_index
吗?2skhul335#
kninwzqo6#
另一个解决方案是从StopIteration中拯救:
i86rm4rw7#
您还可以将@meager的方法用于非此即彼的情况,即您将一些代码应用于除最后一个用户之外的所有用户,然后将一些唯一的代码应用于最后一个用户。
这样你就不需要条件句了!
nhaq1z218#
有时候我发现把逻辑分成两部分会更好,一部分用于所有用户,另一部分用于最后一个用户。所以我会这样做:
slwdgvem9#
对于某些版本的Ruby,没有最后一个哈希方法