看板 Ruby 關於我們 聯絡資訊
※ 引述《joehwang (便宜十塊錢)》之銘言: : def add_product(product) : current_item=@items.find{|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
godfat:那不能說是 iterator, 只是這邊正好有這個行為 12/05 02:30
yzugsr:應該說類似這樣的行為 如果資料有建index的話 12/05 07:49
yzugsr:linear scan整個資料庫會慢到爆掉 12/05 07:50
janyfor:樓上意思是說 這樣直接下SQL語法 會比較好 對嗎? 12/05 11:01
godfat:這邊跟資料庫無關啊... 那是 Array#find 12/05 16:25
joehwang:謝謝大家的解答,我比較清楚了~^^ 12/05 21:21
janyfor:godfat大 是回我嗎? 12/05 21:31
janyfor:如果是 我是問是否直接下SQL語法 是不是比較有效率 12/05 21:33
godfat:不是耶,我是說這邊跟 db 無關,也不知道你提 SQL 是指? 12/05 22:32
janyfor:@@" 我指2樓說的 如果3個表單互相找資料的話 12/05 23:13
shelary:資料庫就是要加條件去找..而不是一個一個列出來找 12/06 06:28