2016-06-20 10 views
0

Ich fragte mich, ob es eine Möglichkeit gab, ein Objekt zu referenzieren, wenn es einer Variablen zugewiesen wurde. Hier ist ein Beispiel, wo diese Frage gelten würde:
Nehmen wir an, ich wollte die Teilzeichenfolge einer Regex einer Variablen zuweisen, rufen Sie es i. zuzuweisen, ichSelbstreferenzierung eines Objekts in seiner Zuordnung

i = /some_regex/.to_s 

und

i = i[3...i.length] 

ich es auch alle in eine Zeile schreiben könnte dann schreiben könnte, wie

i = /some_regex/.to_s[3.../some_regex/.to_s.length] 

Allerdings scheinen diese beiden Beispiele etwas redundant und der zweite Ansatz könnte mit großen Regex- oder mehreren Methodenaufrufen unhandlich werden. Gibt es eine Möglichkeit, das zu ändernde Objekt zu referenzieren, ohne alles neu schreiben zu müssen?

Bearbeiten: Sorry für vorherige Mehrdeutigkeit.

+1

Nicht klar, was Sie zuweisen möchten "i". Auch nicht klar, was 'i' im letzten Beispiel macht. – sawa

+0

Ist dies nur ein Beispiel oder versuchen Sie tatsächlich, ein Problem mit regulären Ausdrücken zu lösen? – Stefan

Antwort

0

Ruby wertet die rechte Seite des Gleichheitszeichens aus, bevor die linke Seite gleich gesetzt wird. Wenn also i bereits existiert, können Sie das tun, worüber Sie sprechen. Ein einfaches Beispiel:

i = 10 
i = i + 1 # now i = 11 

Sie können jedoch nicht i verwenden selbst zu definieren. Sie könnten die folgenden zwei Zeilen verwenden:

i = expression.match(/\d+[\+|-|\*|\/]/) 
i = i[0..i.length - 1] # Note: this is the same as i = i[0...i.length] 
Verwandte Themen