01 - extending specific objects with modules.rb

来自「O Reilly Ruby Cookbook source code」· RB 代码 · 共 52 行

RB
52
字号
class Person  attr_reader :name, :age, :occupation  def initialize(name, age, occupation)    @name, @age, @occupation = name, age, occupation  end      def mild_mannered?    true  endend#---jimmy = Person.new('Jimmy Olsen', 21, 'cub reporter')clark = Person.new('Clark Kent', 35, 'reporter')jimmy.mild_mannered?                                     # => trueclark.mild_mannered?                                     # => true#---module SuperPowers  def fly    'Flying!'  end  def leap(what)        "Leaping #{what} in a single bound!"  end  def mild_mannered?    false  end  def superhero_name    'Superman'  endend#---clark.extend(SuperPowers)clark.superhero_name                          # => "Superman"clark.fly                                     # => "Flying!"clark.mild_mannered?                          # => falsejimmy.mild_mannered?                          # => true#---class Person    extend SuperPowersend#which is equivalent to:Person.extend(SuperPowers)#---Person.superhero_name                   # => "Superman"Person.fly                              # => "Flying!"#---

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?