我该如何实现选项哈希?类中具有选项哈希的结构是什么样的?比如我有一个人类(person class),我想要实现一个方法,例如 my_age,当调用它时,使用选项哈希来告诉我我的年龄。
我该如何实现选项哈希?类中具有选项哈希的结构是什么样的?比如我有一个人类(person class),我想要实现一个方法,例如 my_age,当调用它时,使用选项哈希来告诉我我的年龄。
你可以像这样做:
class Person
def initialize(opts = {})
@options = opts
end
def my_age
return @options[:age] if @options.has_key?(:age)
end
end
p1 = Person.new(:age => 24)<br/>
p2 = Person.new
p1.my_age # => 24<br/>
p2.my_age # => nil
class Person
def birth_date
Time.parse('1776-07-04')
end
def my_age(opts=nil)
opts = {
as_of_date: Time.now,
birth_date: birth_date,
unit: :year
}.merge(opts || {})
(opts[:as_of_date] - opts[:birth_date]) / 1.send(opts[:unit])
end
end
class Person
attr_accessor(:first_name, :last_name, :date_of_birth)
def initialize(first_name:, last_name:, date_of_birth: Time.now)
self.first_name = first_name
self.last_name = last_name
self.date_of_birth = date_of_birth
end
def my_age(as_of_date: Time.now, unit: :year)
(as_of_date - date_of_birth) / 1.send(unit)
end
end
**
运算符:class Some
def initialize(**options)
@options = options
end
def it_is?
return @options[:body] if @options.has_key?(:body)
end
end