比方說,我有句數組:乾淨的方法做這樣的事情「Sentences.each.each」在Ruby中
a = ["I love pie", "I love you more and more each day", "every day is a good day"]
我想測試句子中的每個單詞。因爲紅寶石太棒了,所以我認爲每個e.each都可以工作,但事實並非如此。有沒有一個乾淨的方式,而不必嵌套每個內部的每個內部?
比方說,我有句數組:乾淨的方法做這樣的事情「Sentences.each.each」在Ruby中
a = ["I love pie", "I love you more and more each day", "every day is a good day"]
我想測試句子中的每個單詞。因爲紅寶石太棒了,所以我認爲每個e.each都可以工作,但事實並非如此。有沒有一個乾淨的方式,而不必嵌套每個內部的每個內部?
a.each { |sentence| sentence.split.each { |word| # do something with the word } }
或稍長的格式,如果:
a.each do |sentence|
sentence.split.each do |word|
# do something
# do something
# do something
end
end
一種格式被認爲比另一種更好嗎? –
好,如果你需要一個班輪,第一個可以工作。但是如果你需要對每個'word'做一堆東西,那麼你可能想用多行'do ... end'塊代替。 –
如果你想避免嵌套(至少在視覺上),你可以使用:
a.map(&:split).flatten.each{ |word| # do something }
值得一提的是,有沒有串#每個,所以「我愛餡餅」。每個都是一個'NoMethodError'。你需要''我愛餡餅「.split.each',即使沒有包裝數組。 – Chowlett