Project1

标题: 请教一下module是虾米 [打印本页]

作者: 玄月    时间: 2009-1-24 21:13
标题: 请教一下module是虾米
他有什么用?
格式是什么?
以及调用方法。。。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: zmv2000a    时间: 2009-1-24 21:18
模块定义首先请从左边列表里选择 Vocab 组

第1到第6行是解释说明,这里不会有什么问题的。请看第8行。

module Vocab
在这里,定义了一个叫做Vocab的新的模块。在基础篇里进行显示图片的时候,曾经使用过Graphics这个模块。和类一样,模块也可以自定义。具体见下面。

module 模块名end
这与类定义的方法几乎是一样的。模块除了不能生成对像实例外,基本上和类是一样的。实际上还有不能使用 include 进行 Mix-in 这一个区别,不过由于没有在预置脚本里使用,无视也可以。

还有,Vocab这个名称来源于 vocabulary (语汇)这个英语单词,Vocab是它的省略形式
[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 玄月    时间: 2009-1-24 21:27
还没懂。。
作者: 亿万星辰    时间: 2009-1-24 21:30
举个平时总见到的
Input Graphics
可以看到平时总会见到Input::C Input::UP Input.trigger?() Input.dir4 Graphics.update等等模块对应的常量以及方法...
另外,我们在编辑模式下数据库里的几乎所有内容都是在RPG这个大模块里的,比如人物数据库RPG::Actor,武器数据库RPG::Weapon等等都是模块RPG中的类
另外有些特殊的,比如用于图片载入的RPG::Cache,这个Cache是模块RPG中的模块

上面说的这些的相关内容都可以在F1里搜索到的 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~ [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: ONEWateR    时间: 2009-1-24 21:35
储存量。

module a
def b
   xxx
end
end

a::b    ==>  xxx

作者: 玄月    时间: 2009-1-24 21:47
module RPG
  
  class Skill
    def name
      name = @name.split(/,/)[0]
      return name != nil ? name : ''
    end
    def type
      type = @name.split(/,/)[1]
      return type != nil ? type : 0
    end
   end
end
那这个的意思呢?
作者: 新生使者    时间: 2009-1-24 21:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: 玄月    时间: 2009-1-24 22:07
type是变量么?
作者: 亿万星辰    时间: 2009-1-24 22:54
以下引用ONEWateR于2009-1-24 13:35:22的发言:

储存量。

module a
def b
  xxx
end
end

a::b    ==>  xxx

话说,方法可以用.的……

以下引用玄月于2009-1-24 14:07:30的发言:

type是变量么?

type是个方法,单纯的一个类里的方法
作者: 禾西    时间: 2009-1-24 23:05
為甚麼總是不肯先搜索……
http://rpg.blue/web/htm/news673.htm
module簡單來說,就是靜態class,除了不能生成實例以外,跟class沒啥分別。估計主要用途,就是多重繼承吧== [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 新生使者    时间: 2009-1-24 23:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 玄月    时间: 2009-1-25 01:31

type.to_s
type.to_i
又是什么意思?
作者: 亿万星辰    时间: 2009-1-25 01:35
以下引用玄月于2009-1-24 17:31:25的发言:


type.to_s
type.to_i
又是什么意思?

type这个方法是有返回值的,也就是你看到的return XXX,新生使者举的例子里返回的值有可能是一个字符串,也有可能是0,你可以对这个返回值做一些处理,比如普通的运算,显示,或者是参与到其他的方法中。至于to_s to_i是什么,问F1吧
作者: 玄月    时间: 2009-1-25 02:07
找不到。。。
作者: 亿万星辰    时间: 2009-1-25 02:53
没用心找吧……明明可以找到的……{/kuk}
作者: 玄月    时间: 2009-1-25 03:23
关键字搜不到。。。
作者: 亿万星辰    时间: 2009-1-25 03:36
to_s
to_i
{/lh}
作者: 玄月    时间: 2009-1-25 04:21
每次看到亿万,前方就会闪现出亮光,天空中最闪耀的星辰啊,救救我吧。。
出自天干宝卷丙。。
作者: 亿万星辰    时间: 2009-1-25 05:26
你来试试这几段代码吧

p "13" + 1
p "13".to_i + 1

p 66 + "RPG"
p 66.to_s + "RPG"

最前面例子里的type我也说过,可能是字符串,可能是数字0,所以在处理时就应该做一个强制的类型转换来避免出错。

其实一般我都会在type定义的地方,直接return一个to_i的数字。
作者: 玄月    时间: 2009-1-25 06:07
to_i是将文字中的数字转换为实际的数字参与计算
to_s是将实际数字转换成能显示的文字。。
是这样的意思吧。
作者: 亿万星辰    时间: 2009-1-25 06:22
并不单单如此,所以才让你去F1,里面说的更详细一些,比如
10.to_s(2)  => "1010"
10.to_s(10)  => "10"
10.to_s(8)  => "12"
10.to_s(16)  => "a"
这些用法都是F1里提到的

其实后面讨论的这些和module本身是没什么关系了~~~
作者: 玄月    时间: 2009-1-25 07:01
电子书的检索简直就是白痴来的。只能搜索第一个字母
作者: 后知后觉    时间: 2009-1-25 08:06
F1里能搜索到的,以前我学习这个的时候就搜到的
除了to_s to_i
还有to_a to_f

作者: 亿万星辰    时间: 2009-1-25 17:17
以下引用玄月于2009-1-24 23:01:33的发言:

电子书的检索简直就是白痴来的。只能搜索第一个字母

这个倒不会,不少人都是通过F1一路走过来的……所以……{/pz}
作者: 玄月    时间: 2009-1-25 18:57
不是………………那是因为。。。

这算是对亿万的最初印象。。
作者: 亿万星辰    时间: 2009-1-26 03:17
这扯到什么上了……话说问题到底弄明白了否?鼠年最后一天了~~~
作者: 玄月    时间: 2009-1-26 04:12
恩,to_s,to_i是什么暫時知道了。這個module還要寫一遍才知道弄懂沒有
作者: 灼眼的夏娜    时间: 2009-1-28 22:00
以下引用亿万星辰于2009-1-24 14:54:34的发言:


以下引用ONEWateR于2009-1-24 13:35:22的发言:

储存量。

module a
def b
xxx
end
end

a::b    ==>  xxx


话说,方法可以用.的……


话说这个方法 无论:: 还是. 都不能这样调用的吧- -
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 玄月    时间: 2009-1-28 22:24
结贴了……免得达克又提醒我
作者: 新生使者    时间: 2009-6-12 08:00
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1