Project1
标题: for循环的写法操作看似一样,但为什么结果不同... [打印本页]
作者: 正太君 时间: 2014-10-31 08:25
标题: for循环的写法操作看似一样,但为什么结果不同...
a = [0,1,2,3,4]
for i in a
i = 5
end
p a # => [0,1,2,3,4]
a = [0,1,2,3,4]
for i in a
i = 5
end
p a # => [0,1,2,3,4]
a = [0,1,2,3,4]
for i in 0...a.size
a[i] = 5
end
p a # => [5,5,5,5,5]
a = [0,1,2,3,4]
for i in 0...a.size
a[i] = 5
end
p a # => [5,5,5,5,5]
我想知道为什么会得到不同的结果...
作者: 泉塚四季 时间: 2014-10-31 08:49
本帖最后由 泉塚四季 于 2014-10-31 09:55 编辑
- a=0
- b=a
- b=1
- p a # 0
- a = [0,1,2,3,4]
- for i in 0...a.size
- i = 5
- end
- p a # => [0,1,2,3,4]
复制代码 为什么不用each?
作者: cinderelmini 时间: 2014-10-31 10:55
因为第一种是用把数组a里面的东西代进i,
然后=5的是i而不是a,p的是a,所以a不会有改变~
第二种是直接把a里面的每个东西都改成5了~
所以就变了~
作者: taroxd 时间: 2014-10-31 15:29
本帖最后由 taroxd 于 2014-10-31 15:30 编辑
a.fill(5)
a.map! { 5 }
这两种写法都是可以的。前面一种的话,数组所有元素都是同一对象的引用,因为是整数所以没有问题。
用 for 循环只会限制你的思路。在 Ruby 中还是少用 for 循环比较好
作者: 晴兰 时间: 2014-10-31 22:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: chd114 时间: 2014-11-1 08:28
i = 5和a[i] = 5不是一个东西吧···
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |