作者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