2009-05-18 8 views
1

私は、アクセスすることに応じて他の多くの関数を呼び出すための汎用関数を作成する必要があります。例については :文字列を関数名として使用する

def func1 

    @access = ['public','private','protected'] 
    for acc in @access 
     @temp = "get_"+acc[1]+"_data" 
    end 
end 

def get_public_data 
end 

def get_private_data 
end 

def get_protected_data 
end 

しかし@temp文字列としてそれを取って、それに割り当てています。 こちらをご覧ください。

は、使用しているどのような言語を知っているが、いくつかの言語はつまり、Perlはあなたがしようとしている何をどのeval()機能を持っていないあなたに

+0

私たちにいくつかのより多くの情報と例を教えてください。 – MrHus

+1

どのプログラミング言語ですか? – Mnementh

+0

PLは言語ですか? –

答えて

0

ありがとうございます。

あなたが

@temp =のeval( "取得_" + ACC 1 + "_データ")Rubyで

+0

Thnxバディ 私はそれをRuby On Railsで開発しています –

3

のようなものを試してみてくださいPerlやPythonのを使用する場合は、方法は、実際にメッセージです。だから、うん、send方法を使用してメッセージ名を送信することができます

s = 'xyz' 
i = s.send 'length' 
# i = 3 
2
@temp = send "get_#{acc[1]}_data" 

利用#{acc[1]}の代わりに「+」