2009-05-18 16 views
1

Ich habe eine generische Funktion gemacht, die für den Zweck verwendet wird, viele andere Funktionen aufzurufen, abhängig von den Zugriffen. Für Ex:Verwenden einer Zeichenfolge als Funktionsname

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 

aber @temp wird es als String zu nehmen und es zu zuweisen. Bitte helfen Sie so schnell wie möglich.

Danke

+0

Bitte geben Sie uns einige weitere Informationen und ein Beispiel. – MrHus

+1

Welche Programmiersprache? – Mnementh

+0

Oder ist die Sprache PL? –

Antwort

0

Sie wissen nicht, welche Sprache Sie verwenden, aber einige Sprachen heißt Perl haben eine eval() Funktionen, die tut, was Sie wollen.

Wenn Sie Perl oder Python verwenden könnten Sie so etwas wie

@temp = eval ("get _" + acc 1 + "_ data")

+0

Thnx Buddy im Entwickeln in Ruby On Rails –

3

In Ruby versuchen, Methoden sind tatsächlich Nachrichten . So können Sie die Nachricht Namen, yup, die send Methode senden:

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

Verwenden #{acc[1]} statt "+"

Verwandte Themen