require、load类似java中的import,引入别的文件中定义的类
include用于实现mixin,引入module。
[code]
# Mixins.rb
module D
def initialize(name)
@name =name
end
def to_s
@name
end
end
module Debug
include D
# Methods that act as queries are often
# named with a trailing ?
def who_am_i?
"#{self.class.name} (\##{self.object_id}): #{self.to_s}"
end
end
class Phonograph
# the include statement simply makes a reference to a named module
# If that module is in a separate file, use require to drag the file in
# before using include
include Debug
# ...
end
class EightTrack
include Debug
# ...
end
ph = Phonograph.new("West End Blues")
et = EightTrack.new("Real Pillow")
puts ph.who_am_i?
puts et.who_am_i?
[/code]
require、load 引用的文件需用引号引起来,也可以使用String对象
a='motorcycle'
require a
m = MotorCycle.new('Yamaha', 'red')
A module may contain constants,methods and classes
No instances
include用于实现mixin,引入module。
[code]
# Mixins.rb
module D
def initialize(name)
@name =name
end
def to_s
@name
end
end
module Debug
include D
# Methods that act as queries are often
# named with a trailing ?
def who_am_i?
"#{self.class.name} (\##{self.object_id}): #{self.to_s}"
end
end
class Phonograph
# the include statement simply makes a reference to a named module
# If that module is in a separate file, use require to drag the file in
# before using include
include Debug
# ...
end
class EightTrack
include Debug
# ...
end
ph = Phonograph.new("West End Blues")
et = EightTrack.new("Real Pillow")
puts ph.who_am_i?
puts et.who_am_i?
[/code]
require、load 引用的文件需用引号引起来,也可以使用String对象
a='motorcycle'
require a
m = MotorCycle.new('Yamaha', 'red')
A module may contain constants,methods and classes
No instances
本文介绍了Ruby语言中模块(module)的使用方法,包括如何通过include关键字实现mixin功能,以及如何利用require加载外部文件。并通过示例展示了如何在不同类中引入相同的模块以复用代码。
5853

被折叠的 条评论
为什么被折叠?



