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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: Iselia雪
打印 上一主题 下一主题

垃圾…………(自己写的ruby功能中使用迭代器)

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

Lv1.梦旅人 (禁止发言)

悔恨的天使

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-26
帖子
726
11
 楼主| 发表于 2008-4-17 06:27:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

12
发表于 2008-4-17 06:36:36 | 只看该作者
yield返回的就是每次运算的值


每次运算的值.?
def orz(n)
  yield n
end
orz(1){ |a| a > 0 }
是不是这样yield就返回真?
-.-
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

悔恨的天使

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-26
帖子
726
13
 楼主| 发表于 2008-4-17 06:51:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

14
发表于 2008-4-17 07:04:11 | 只看该作者
yield 感觉上像STL的模板函数 传参像是 类型和对象指针, 语句块相当于函数指针
yield 保存最近一次执行时语句块中的最后的一个值
def iterate_actor
    for actor in $game_party.actors
        p yield actor
    end
end
iterate_actor { |actor| actor.hp -= 50 }
iterate_actor { |actor| actor.name }
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2005-11-29
帖子
141
15
发表于 2008-4-17 07:21:30 | 只看该作者
Array 用 reject 或者 delete_if 可以达到同样的效果

例: 将1至10里面能被 3 整除的数去掉

(1..10).reject {|i|  i % 3 == 0 }  

结果 [1, 2, 4, 5, 7, 8, 10]
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
9722
在线时间
4412 小时
注册时间
2005-10-22
帖子
6887

开拓者贵宾

16
发表于 2008-4-19 01:58:03 | 只看该作者
以下引用神思于2008-4-16 19:21:09的发言:

对了问个问题``
yield返回的是啥..?

对迭代器不太了解

def orz
yield "otz"
yield "otz"
end
orz{ |j| p j }

貌似是yield的时候将值传递到块中...
但不像return返回

唯一试过用的方法就是酱紫...
class Game_Actor
def get_armors
   yield $data_armors[@armor1_id] if @armor1_id != 0
   yield $data_armors[@armor2_id] if @armor2_id != 0
   yield $data_armors[@armor3_id] if @armor3_id != 0
   yield $data_armors[@armor4_id] if @armor4_id != 0
end
end

actor.get_armors{ |armor| armor.name }............
有时候还是会有一点方便的```


[本贴由作者于 2008-4-16 19:24:46 最后编辑]

对某书的YY解释认为,貌似返回块的最后一句做的东东....
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

17
发表于 2008-4-19 19:01:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-4-5 05:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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