作者windwofswold ( ◤〔ζ狼ζ〕◢)
看板Ruby
標題Re: [RoR ]請教@items.find......語法的問題
時間Wed Dec 5 02:18:18 2007
※ 引述《joehwang (便宜十塊錢)》之銘言:
: def add_product(product)
: [email protected]{|item| item.product==product}
: if current_item
: current_item.increment_quantity
: else
: @items<<CartItem.new(product)
: end
: end
: end
: 紅色的地方看不大懂,請問它是去item陣列中搜尋跟product相等的值嗎?
: 那個|item|是什麼意思呢,謝謝大家的幫忙~
|something| 這是ruby裡面的迭代器(iterator)
在Ruby Programming這本書裡有說到「迭代器能對陣列所有元素逐一進行特定的操作」
例如:
list = [1,3,5,7,9]
sum = 0
list.each{ |element|
sum += element
}
例如:
price = { "orange" => 10 , "apple" =>12 , "banana" => 13 }
price.each{ |fruit , price|
puts fruit + " costs " + price + "dollars"
}
所以上面的飯粒是在說
如果我要新增的product在購物車陣列裡找的到一樣的product的話
我就把個數+1
不然就在陣列尾巴插入一個新product
懂了嗎^^?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.0.243
1F:推 godfat:那不能說是 iterator, 只是這邊正好有這個行為 12/05 02:30
2F:推 yzugsr:應該說類似這樣的行為 如果資料有建index的話 12/05 07:49
3F:→ yzugsr:linear scan整個資料庫會慢到爆掉 12/05 07:50
4F:推 janyfor:樓上意思是說 這樣直接下SQL語法 會比較好 對嗎? 12/05 11:01
5F:推 godfat:這邊跟資料庫無關啊... 那是 Array#find 12/05 16:25
6F:推 joehwang:謝謝大家的解答,我比較清楚了~^^ 12/05 21:21
7F:推 janyfor:godfat大 是回我嗎? 12/05 21:31
8F:→ janyfor:如果是 我是問是否直接下SQL語法 是不是比較有效率 12/05 21:33
9F:→ godfat:不是耶,我是說這邊跟 db 無關,也不知道你提 SQL 是指? 12/05 22:32
10F:推 janyfor:@@" 我指2樓說的 如果3個表單互相找資料的話 12/05 23:13
11F:推 shelary:資料庫就是要加條件去找..而不是一個一個列出來找 12/06 06:28