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

Project1

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

关于 inject 的问题

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-11-21
帖子
240
跳转到指定楼层
1
发表于 2007-7-25 00:33:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-11-21
帖子
240
2
 楼主| 发表于 2007-7-25 00:33:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv2.观梦者

梦石
0
星屑
431
在线时间
125 小时
注册时间
2006-11-2
帖子
1200
3
发表于 2007-7-25 00:55:32 | 只看该作者
[1,2,3].inject([]) do |a, item|
p "step1 item=#{item}",a

    a.push(item)
  
p "step2 item=#{item}",a
a = a
end


不懂诶。。基本米用过。。偶连inject 和 each 的区别都还混淆着。。

不过 加了那句之后貌似就不出错了 搬个凳子和楼主一起等解答
和记忆一起封存着的ID...
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-11-21
帖子
240
4
 楼主| 发表于 2007-7-25 01:06:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

5
发表于 2007-7-25 01:08:01 | 只看该作者
第一次时会将[]传入a, 将1传入item;
第二次执行的时候会将第一次执行的结果传入a,将第二个元素item,
依此类推,

“p "step2 item=#{item}",a”的返回值为nil

例如

def test

p "step2 item1"

ebd

p test ==> "step2 item1",nil
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
帖子
4085

第1届短篇游戏比赛亚军

6
发表于 2007-7-25 01:12:10 | 只看该作者
知道原理,就很容易实现了吧,
默认inject也是使用yield实现的。
纵然千里外,我等雁归来。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-11-21
帖子
240
7
 楼主| 发表于 2007-7-25 01:19:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-9-22 13:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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