2007-11-27
ROR经常犯的错误三 - Array.each
关键字: ruby rails本文首发于: 三人行RubyOnRails话吧 , 转帖请注明出处.
直接进入正题,大家猜想一下,下面这段代码会出现什么结果?
arr =[11,22,33,44,55]
arr.each do |a|
p a
arr.delete(a)
end return arr
您可以预期的结果是:
11
22
33
44
55
实际结果是:
11
33
55
有点出乎意料是不是?具体原因去看看Ruby的source哦。。。
如果想要达到类似的效果您可以使用以下的代码
方法一:
arr =[11,22,33,44,55]
j =0
0.upto(arr.size-1) do |i|
a = arr[i-j]
p a
arr.delete(a)
j += 1
end
return arr
方法二:
arr =[11,22,33,44,55]
brr=arr.clone
brr.each do |a|
p a
x = x+1
arr.delete(a)
end
return arr
本文首发于: 三人行RubyOnRails话吧 , 转帖请注明出处.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 5493 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
三人行(3user.com)新版v1 ...
你好。看了3user.com 蛮不错的。就是页面有点乱,希望可以改进一下。。 ...
-- by jsifa -
Rails跨域session过期的 ...
thanks
-- by 茶道 -
ROR经常犯的错误三 - Arr ...
如果你在java中也一样。。。。
-- by 抛出异常的爱 -
ror应用存在二级域的,相 ...
这个问题在博客园也有人提过,好像是IE认为子域与主域的资源不是相同的(实际上大多 ...
-- by crazysoul -
ror应用存在二级域的,相 ...
有些是要区分对待的,那只要在lighttpd.conf多加一些配置就行了!
-- by s00n






评论排行榜