Rails optional argument

后端 未结 4 859
礼貌的吻别
礼貌的吻别 2020-12-07 17:49

I have a class

class Person
    attr_accessor :name,:age
    def initialize(name,age)
        @name = name
        @age = age
    end
end

I

4条回答
  •  暖寄归人
    2020-12-07 18:10

    If you want both arguments to be optional but also set default values when nil then you could go with:

    class Person

    def initialize(name = nil, age = 0)
      @name ||= "Default name"
      @age = age
    end
    

    end

    This gets over the issue of passing nil as the first option but still getting a useable default value.

    @person = Person.new nil, 30
    @person.name # => "Default name"
    @person.age # => 30
    

提交回复
热议问题