本帖最后由 DeathKing 于 2014-5-26 07:28 编辑 是的,为什么不使用while来处理,直至处理完毕呢?于是,不要怕,大刀阔斧地改吧!于是我们立马注释掉了#232和#233,添加上我们的代码: 正当我们心满意足地欣赏我们的杰作时,你突然想到下面的自指会让我们陷入无穷尽的循环中。 你轻蔑地说:“啧!哪里有这么蛋疼的人,写得出这么蛋疼的指令?”而当你冷静下来,你会觉得,即时是嵌套两层,也是非常少见了,嵌套多层更是比“使用奇怪的自指”罕有。 一方面,我们希望让系统的复杂度保持足够的低,换句话说,我们不太希望”变量存放的地址是另一个变量的地址,而另一个变量里面存放的是另一个变量的地址“这种type ***之类的数据存在。这类功能有更简洁、明了的表达方式,不用让我们的思维兜圈子。这样来说,默认脚本提供了一次嵌套,已经能囊括99%的情况了。 至于Hash和Array的效率问题。Array的IO操作都能在O(1)时间内完成,这是由于Array可以通过索引快速计算出元素的地址。而Hash依赖于哈希函数hash()(或者称为key())的定义,如果有碰撞,hash还得处理碰撞,如拉链法就得额外增加一个链表遍历的开销,开放寻执法得额外增加一个开放寻址的开销。 Hash与Array的相比,优势是很明显的:Array只能以整数(索引)为Key,而Hash可以以任何对象为Key(原理上是将对象映射为整数)。另外,假设为了寻找字符串“target",使用数组无序存储,则需要花O(n)的时间去遍历Array,而是用Hash,可以将时间复杂度降至O(1)。 RM最大的开销来自于图像的描绘,在Ruby层面上的计算开销是很少的。就RM数据的规模来说,Hash和Array对效率的影响并没有那么严重。根据实际情况和方便程度决定使用Hash还是Array即可。 |
本帖最后由 taroxd 于 2014-5-25 19:11 编辑 真·有病
RUBY 代码复制
|
3. 为什么不直接递归到底? RUBY 代码复制
4. 首先,模块可以定义initialize,然后,我指的不是这个 举例: RUBY 代码复制
还有我说的是 Game_System#japanese? 这个方法没有什么实际作用 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-13 00:52
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.