我學習Ruby(使用鎬書)和我遇到一個塊操作有點混亂是去有點像這樣:在評論存在紅寶石混淆塊
class CsvReader
def initialize
@book_in_stock = []
end
def read_in_csv_data(csv_file_name)
CSV.foreach(csv_file_name, headers: true) do |row| # 1.
@book_in_stock << BookinStock.new(row["ISBN"], row["Amount"]) # 2.
end
end
end
我的困惑「#1」和「2號」,我不明白我們如何得到「123」和「456」,從「test.csv」一csv_file_name包含數據:
"ISBN","Amount"
"123","456"
它是如何排[「ISBN」]知道下一行對應於它?所有的街區都是這樣的嗎?他們真的叫什麼?有人能解釋他們好一點嗎?
見下文塊的討論我的答案,但進一步明確,因爲它有點獨立的問題,未來該行作爲一個哈希所以'行[「ISBN」]'被調用ISBN鍵處理這是第一次通過塊設置,因爲您將標題設置爲true作爲CSV foreach選項之一。所以ISBN的關鍵值是123. Ruby語法看起來像「isbn」=>「123」或key =>值。 – 2010-08-10 23:20:26
這幾乎可以解答所有的問題:)謝謝。 – asdf 2010-08-10 23:22:54
那麼,每行/每行都有一個新的散列? – asdf 2010-08-10 23:24:45