设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1949|回复: 5
打印 上一主题 下一主题

[已经解决] for循环的写法操作看似一样,但为什么结果不同...

[复制链接]

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6182
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
跳转到指定楼层
1
发表于 2014-10-31 08:25:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
RUBY 代码复制
  1. a = [0,1,2,3,4]
  2. for i in a
  3.   i = 5
  4. end
  5. p a # => [0,1,2,3,4]

RUBY 代码复制
  1. a = [0,1,2,3,4]
  2. for i in 0...a.size
  3.   a[i] = 5
  4. end
  5. p a # => [5,5,5,5,5]

我想知道为什么会得到不同的结果...

点评

所以我才来问呀...VA的结果和VX测试是一样的...  发表于 2014-10-31 08:35
吾只说过不能像第一种写法那样写,但是亦不能解释为什么喵~经验之谈~VX里是这样,VA不知道是不是~  发表于 2014-10-31 08:33
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

Lv1.梦旅人

梦石
0
星屑
50
在线时间
269 小时
注册时间
2014-5-9
帖子
127

开拓者

2
发表于 2014-10-31 08:49:31 | 只看该作者
本帖最后由 泉塚四季 于 2014-10-31 09:55 编辑
  1. a=0
  2. b=a
  3. b=1
  4. p a # 0
  5. a = [0,1,2,3,4]
  6. for i in 0...a.size
  7. i = 5
  8. end
  9. p a # => [0,1,2,3,4]
复制代码
为什么不用each?

点评

哦哦...大致明白了...谢谢你的耐心讲解...  发表于 2014-10-31 09:57
产生结果不同的原因不是第二行的for循环,而是第三行的赋值语句  发表于 2014-10-31 09:41
b=a 意思是b的值赋为a的值...不是b的指针赋为a的指针...  发表于 2014-10-31 09:39
指针的缘故吗...我原猜想可能是...each是一样的...a.each{|i| i}就不可以  发表于 2014-10-31 09:14

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

泉眼无声惜细流,树阴照水爱晴柔。
小荷才露尖尖角,早有蜻蜓立上头。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

3
发表于 2014-10-31 10:55:34 | 只看该作者
因为第一种是用把数组a里面的东西代进i,
然后=5的是i而不是a,p的是a,所以a不会有改变~
第二种是直接把a里面的每个东西都改成5了~
所以就变了~

点评

谢谢,懂了...  发表于 2014-10-31 11:45

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-10-31 15:29:24 | 只看该作者
本帖最后由 taroxd 于 2014-10-31 15:30 编辑

a.fill(5)

a.map! { 5 }

这两种写法都是可以的。前面一种的话,数组所有元素都是同一对象的引用,因为是整数所以没有问题。
用 for 循环只会限制你的思路。在 Ruby 中还是少用 for 循环比较好

点评

好吧我表述不当。我是指把简单问题复杂化的意思……  发表于 2014-10-31 20:04
主要还是想知道为什么会限制思路啦...  发表于 2014-10-31 19:09
汗= = 我代码不是写在帖子里么  发表于 2014-10-31 19:04
版主大人为什么会说for循环限制思路呢...不用for循环那用什么实现呢...请版主大人赐教...  发表于 2014-10-31 17:39

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

5
发表于 2014-10-31 22:20:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
发表于 2014-11-1 08:28:36 | 只看该作者
i = 5和a[i] = 5不是一个东西吧···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-2 00:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表