查看: 3082|回复: 11

模块的用法

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-8
回帖
32
发表于 2008-5-17 20:07:26 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2008-5-17 20:15:00 | 显示全部楼层
类和模块有以下差别

类可生成实例
类不能使用 include 进行 Mix-in
除此以外类的大部分功能都继承于 Module。

以上摘自F1。事实上,模块可以看成一个所有成员都是共享的类。
格式
module XXX
#属性不要使用
@iosejgoi = 2354
def self.方法名
end
end
调用:……
模块名.方法名(参数)
应用:……………………
系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-5-17 20:16:30 | 显示全部楼层
1.屬於靜態的類,不能生成實例(.new),在全局當中是唯一的存在。
2.module XXX(與類基本相同)

3.
module A
end
A(直接用)

4.用的最多的是用來儲存常量(Constance)
在class 當中使用 include XXX 實現多繼承

5.存在意義,作爲動態類的一個補償
系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

风之塞尔达

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

贵宾

发表于 2008-5-17 20:31:54 | 显示全部楼层
模块不需要实例化  相当于C++里面的名空间, 其中包含静态函数和变量, 和类的定义
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2008-5-17 20:37:47 | 显示全部楼层
以下引用link006007于2008-5-17 12:31:54的发言:

模块不需要实例化  相当于C++里面的名空间, 其中包含静态函数和变量, 和类的定义

不管是命名空间还是无名空间都可以包含类诶= =而模块里的类却是嵌套类= =这样不是误导人家吗……
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

风之塞尔达

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

贵宾

发表于 2008-5-17 20:55:05 | 显示全部楼层
module AM
  class AM_Class1
    def initialize
      p 1
    end
  end
end

class AM_Class1
  def initialize
    p 2
  end
end

a = AM::AM_Class1.new
a2= AM_Class1.new
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-8
回帖
32
 楼主| 发表于 2008-5-17 21:43:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

风之塞尔达

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

贵宾

发表于 2008-5-17 22:04:52 | 显示全部楼层
module Mod
  def Show()
    p "module Show"
  end
  def self.Show()
    p "module selfShow"
  end
end

class IncludeMod
  include Mod
end
class NoIncludeMod
  def Show
    Mod::Show()
  end
end

a = NoIncludeMod.new
a.Show
b = IncludeMod.new
b.Show
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2008-5-17 22:10:39 | 显示全部楼层
其實啊...include 就是 inheritance (繼承)的實質啊(茶)
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-5-17 22:12:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部