初始化Ruby类的惯用方式

Ben

初始化Person对象的惯用方式是什么我个人比较喜欢,person2但是我是Ruby的新手。

class Person
    attr_reader :first, :middle, :last, :phone_number

    def initialize(first, middle, last, phone_number)
        @first = first
        @middle = middle
        @last = last
        @phone_number = phone_number
    end
end

if caller.length == 0
    person1 = Person.new("John", "T", "Smith", "555-5555")
    person2 = Person.new(
        first=       "John",
        middle=      "T",
        last=        "Smith", 
        phone_number="555-5555",
    )
end
杰里米·布拉洛克(Jeremy Blalock)

通常以红宝石形式创建person1或以下列方式创建对象

class Person
    attr_reader :first, :middle, :last, :phone_number

    def initialize(options)
        @first = options[:first]
        @middle = options[:middle]
        @last = options[:last]
        @phone_number = options[:phone_number]
    end
end

person = Person.new(first: "John", middle: "T", last: "Smith", phone_number"555-5555")

关于这种替代方法的好处是,您可以选择包括任意数量的属性,也可以允许任意排序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章