1

次のようなテーブルを作成するスクリプトがあります。

class TableClass < Table  
    members :hello, :hallo, :halo  
end

このスクリプトは、「hello」、「hallo」、および「halo」というラベルの付いた列を持つテーブルを作成します。別のスクリプトによって生成された結果を使用してこのテーブルを初期化できるように、「メンバー」部分を動的に宣言したいと思います。私はRubyにかなり慣れていないため、メタプログラミングの概念に非常に慣れていませんが、これは実行可能でなければならないと感じています.方法はまだわかりません.

宣言後:

ListOfMembers= [:hello, :hallo, :halo]

私が試してみました:

members ::ListOfMembers

members eval ::ListOfMembers.join(",")

役に立たず、これを理解するために何を検索すればよいかわかりません。私が見つけたすべてのメタプログラミングの例は、クラス メソッドを中心に展開しており、この問題とは関係がないようです。

このクラス構造を破棄するのがおそらくこれを行うための最良の方法ですが、私はできる限り既存のスクリプトを使用しようとしています。

4

1 に答える 1

3

*配列名に追加するだけで、メソッドは各要素を個別の引数として渡されます。

members *ListOfMembers
于 2012-05-21T16:56:00.393 に答える