私はそのようなものを書きたいと思います:
class Test
def initialize(a,b,c)
end
def print()
puts @a
puts @b
puts @c
end
end
Test.new({a=>1, b=>2, c=>3}).print()
=>1
=>2
=>3
オブジェクトをインスタンス化し、そのパラメータをハッシュ テーブルにマップする方法はありますか?
前もって感謝します。
私はそのようなものを書きたいと思います:
class Test
def initialize(a,b,c)
end
def print()
puts @a
puts @b
puts @c
end
end
Test.new({a=>1, b=>2, c=>3}).print()
=>1
=>2
=>3
オブジェクトをインスタンス化し、そのパラメータをハッシュ テーブルにマップする方法はありますか?
前もって感謝します。
まだ Ruby 1.9.3 を使用している場合は、Hash オブジェクトを非常に簡単に使用できます。
class Test
attr_accessor :a, :b, :c
def initialize(h)
h.each {|k,v| send("#{k}=",v)}
end
def print()
puts @a
puts @b
puts @c
end
end
Test.new( {:a => 1, :b => 2, :c => 3}).print()
# 1
# 2
# 3
# => nil
a
ただし、キーとして渡したものと呼ばれる変数が作成されることに注意してください。それが一致しない場合b
、c
アクセサーは失敗します。