#=> class more
#继承怎么实现:
class LittleBird < Bird
def initialize name
super(name)
end
end
#特殊属性访问控制:
attr_reader :name
attr_writer :sex
#=> module
#interface怎么写:
#ruby没有interface,只有比interface更强大的module与mixin机制
#=> module
#"有逻辑实现的interface":
module Eat
def eat
p "i can eat"
end
end
module Sleep
def sleep
p "i can sleep"
end
end
class Pig
include Eat
include Sleep
end
Pig.new.eat
Pig.new.sleep
#=> module constants
# module constants访问:
module Math
PI = 3.14
end
Math::PI
#=> module more
# module namespace:
module Foo
module Bar
def self.say
p "Hi"
end
end
end
Foo::Bar.say
# another module namespace:
module Foo
class Bar
def say
p "Hi"
end
end
end
Foo::Bar.new.say
#=> module singleton
# module的特殊用法singleton:
module Item
extend self
def name
p "i'm item"
end
end
Item.name
#=> ruby more
# monkey patch:
class Fixnum
def plus n
self + n
end
end
1.plus 3
Ruby语言 (三)
最新推荐文章于 2024-07-27 06:13:26 发布