オプション ハッシュを実装するにはどうすればよいですか? オプション ハッシュを含むクラスの構造はどのようになっていますか? 人のクラスがあるとします。呼び出されたときにオプション ハッシュを使用して年齢を教えてくれる my_age などのメソッドを実装したいと考えています。
質問する
6461 次
4 に答える
6
次のようなことができます。
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
于 2013-02-14T06:59:16.290 に答える
3
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
于 2013-02-14T02:44:07.993 に答える
0
**
Ruby 2.x では、次の演算子を使用できます。
class Some
def initialize(**options)
@options = options
end
def it_is?
return @options[:body] if @options.has_key?(:body)
end
end
于 2016-04-23T05:08:24.140 に答える