2016-06-20 5 views
0

オブジェクトに変数を代入するときにオブジェクトを参照する方法があるのだろうかと思いました。ここにこの質問が適用される場所の例があります:
私は正規表現の部分文字列を変数に代入したいとしましょう。割り当てるに 、私は割り当て中のオブジェクトを自己参照しています

i = /some_regex/.to_s 

、その後

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

を書くことができ、私はまた、これらの例の両方がやや冗長に見える、しかし

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

のように、1行ですべてを書くことができます2番目のアプローチは、大規模な正規表現や複数のメソッド呼び出しで扱いにくくなる可能性があります。すべてを書き直すことなく、オブジェクトを参照する方法はありますか?

編集:以前のあいまいさには申し訳ありません。

+1

「i」に割り当てたいものは明確ではありません。最後の例で何をしているのかも明確ではありません。 – sawa

+0

これは単なる例ですか、または実際に正規表現の問題を解決しようとしていますか? – Stefan

答えて

0

ルビは等号の右辺を評価する前に左辺を等価と評価します。したがって、iが既に存在する場合は、あなたが話すことができます。簡単な例:

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

ただし、iを使用して定義することはできません。次の2行を使用できます。

i = expression.match(/\d+[\+|-|\*|\/]/) 
i = i[0..i.length - 1] # Note: this is the same as i = i[0...i.length] 
関連する問題