2016-03-26 10 views
0

Ich schreibe eine App mit Plivo zum Senden/Empfangen von Textnachrichten.Wie man einen String und/oder ganze Zahlen als Variablennamen verwendet

Wenn ein neuer Benutzer die App verwendet, möchte ich ihre Telefonnummer als Variablennamen verwenden, der mit einem allgemeinen Buchstaben vorangestellt ist. Beispiel: d13104325253 = myAppClass.new

Wie verketten Sie eine Zeichenfolge ("d") und eine Zahl (13104325253) am besten und verwenden Sie sie als Variablennamen?

+2

Welches Problem versuchen Sie zu lösen, indem Sie dies tun? –

+0

@ Jordan Ich brauche keine tatsächlichen Benutzernamen, nur Telefonnummern. vorzugsweise möchte ich eingehende sms-params als Aufruf von Klassenfunktionen für die Instanz verwenden, zum Beispiel 'params [: Text] .response_handler()' anstatt einen Hash- oder db-Eintrag verwenden zu müssen. – dscher

Antwort

2

Mit dynamischen Tasten macht es Sinn, ein hash zu verwenden, um Werte zu speichern:

d = {} 
d[13104325253] = myAppClass.new 

Dynamisch generierte lokale Variablen sind nicht sehr benutzerfreundlich, da Sie die Variablennamen speichern, müßten in eine andere Variable, um sie später lesen zu können. Während ein Hash zumindest erlaubt, alle gespeicherten Schlüssel oder Suchschlüssel nach einem bestimmten Muster zurückzugeben.

+0

Ich denke, das würde für meine Zwecke gut funktionieren, da ich 'd [params [: Text]]' verwenden könnte, wenn SMS-Nachrichten eingehen, um mit ihnen umzugehen. – dscher

1

Was ist der beste Weg, um eine Zeichenfolge ("d") und eine Reihe (13104325253)

Interpolation ist zu verketten.

"d#{13104325253}" 

und als Variablennamen verwenden?

Es gibt keinen guten Weg, das zu tun. Das ist eine schlechte Sache zu tun. Eine schlechte Sache zu tun, wenn Sie darauf bestehen, ist ein bindendes Objekt zu verwenden.

b = binding 
b.local_variable_set("d#{13104325253}", myAppClass.new) 
+0

Ich stimme dir zu, Bindung ist eine schlechte Idee. Danke für die Antwort, auch wenn es nicht empfohlen wird. – dscher

Verwandte Themen