我正在閱讀'ruby編程語言',並且遇到以下代碼片段。將多個參數傳遞給一個塊
a.inject do | sum, x |
sum + x
end
據我所知,x包含一個元素從一個將要傳遞給博克但「和」部分是混淆了我,那是某種運算符或函數的還是它就像X另一個變量。我知道x變量可以被稱爲f或v,但是如果是這種情況,ruby如何知道x是將該元素傳遞給迭代器的變量,那麼它可以輕鬆地將該變量傳遞給sum(如果它甚至是一個變量)。
我希望這是有道理的,因爲我總是發現它不得不把我的困惑放到作品中,好像我更好地理解了問題的本質,我更願意找到我自己的解決方案。
謝謝!
那麼在我的例子中紅寶石怎麼知道給x的值,是因爲它在列表中的最後一位,還是因爲sum是某種關鍵字?會'' x,sum |'也一樣嗎? – 2011-12-17 17:12:00
好吧(只是爲了讓它在我的小腦子裏),如果我這樣做'| a,b,c,val |'那麼a,b和c就是我在塊和val中使用的變量,因爲它最後被命名爲迭代器將不同值傳遞給每個塊的地方 – 2011-12-17 17:20:34
aaah,很好,所以迭代器定義了它期望的變量,清除了所有的東西!非常感激! – 2011-12-17 17:46:30