Re: [RoR ]請教@items.find......語法的問題

看板Ruby作者 ( ◤〔ζ狼ζ〕◢)時間18年前 (2007/12/05 02:18), 編輯推噓8(803)
留言11則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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

12/05 02:30, , 1F
那不能說是 iterator, 只是這邊正好有這個行為
12/05 02:30, 1F

12/05 07:49, , 2F
應該說類似這樣的行為 如果資料有建index的話
12/05 07:49, 2F

12/05 07:50, , 3F
linear scan整個資料庫會慢到爆掉
12/05 07:50, 3F

12/05 11:01, , 4F
樓上意思是說 這樣直接下SQL語法 會比較好 對嗎?
12/05 11:01, 4F

12/05 16:25, , 5F
這邊跟資料庫無關啊... 那是 Array#find
12/05 16:25, 5F

12/05 21:21, , 6F
謝謝大家的解答,我比較清楚了~^^
12/05 21:21, 6F

12/05 21:31, , 7F
godfat大 是回我嗎?
12/05 21:31, 7F

12/05 21:33, , 8F
如果是 我是問是否直接下SQL語法 是不是比較有效率
12/05 21:33, 8F

12/05 22:32, , 9F
不是耶,我是說這邊跟 db 無關,也不知道你提 SQL 是指?
12/05 22:32, 9F

12/05 23:13, , 10F
@@" 我指2樓說的 如果3個表單互相找資料的話
12/05 23:13, 10F

12/06 06:28, , 11F
資料庫就是要加條件去找..而不是一個一個列出來找
12/06 06:28, 11F
文章代碼(AID): #17LPdjAG (Ruby)
文章代碼(AID): #17LPdjAG (Ruby)