我可以使用元编程来动态初始化类吗?

时间:2012-05-21 16:53:45

标签: ruby metaprogramming

我有一个脚本可以创建一个这样的表:

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

此脚本创建一个表格,其中的列标有“hello”,“hallo”和“halo”。我想动态声明“成员”部分,以便我可以使用不同脚本生成的结果来初始化此表。我是Ruby的新手,对元编程的概念非常陌生,但我觉得这一定是可行的,我只是不知道如何。

宣布后:

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

我试过了:

members ::ListOfMembers

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

无济于事,我不确定要搜索什么来解决这个问题。我发现的所有元编程示例都围绕着类方法,并且似乎与此问题无关。

删除此类结构可能是执行此操作的最佳方法,但我尝试尽可能使用现有脚本。

1 个答案:

答案 0 :(得分:3)

只需将*添加到数组名称中,方法就会将每个元素作为单独的参数传递。

members *ListOfMembers