ルビーでは行くことができます
a = { }
a['a'] = 82
a['b'] = 'foo'
puts a['a'] # 82
JavaScriptのようにドット表記が使えればいいのですが。
puts a.a # 82
Rubyでオブジェクトリテラルを作成し、ドット表記でアクセスする方法はありますか?
ルビーでは行くことができます
a = { }
a['a'] = 82
a['b'] = 'foo'
puts a['a'] # 82
JavaScriptのようにドット表記が使えればいいのですが。
puts a.a # 82
Rubyでオブジェクトリテラルを作成し、ドット表記でアクセスする方法はありますか?
を作成できますStruct
。
A = Struct.new(:a, :b)
a = A.new(82, 'foo')
puts a.a
#=> 82
編集:
あなたもできる
a = { }
a['a'] = 82
a['b'] = 'foo'
Struct.new(*a.keys).new(*a.values)
必要な構造は、OpenStruct
JSオブジェクトリテラルと同じように機能するものです。method_missing
セッターメソッドを使用して新しい変数を追加できるメソッドを上書きしました。
Ruby にはオブジェクト リテラルがありません。
Ruby はクラスベースのオブジェクト指向言語です。すべてのオブジェクトはクラスのインスタンスであり、クラスはそれ自体のインスタンスを作成する責任があります。書き留めるだけでオブジェクトを作成するのではなく、クラスにメッセージを送信してそれ自体のインスタンスを作成するように依頼する必要があります (通常は と呼ばれますnew
が、これは単なる慣例です)。