自我引用其赋值中的对象

时间:2016-06-20 20:12:05

标签: ruby

我想知道在将对象分配给变量时是否有引用对象的方法。以下是此问题适用的示例:
让我们说我想将正则表达式的子串分配给变量,称之为i。 要分配,我可以写

i = /some_regex/.to_s

然后

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

我也可以把它全部写在一行,比如

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

但是,这两个示例似乎都有些多余,而第二种方法可能会因大型正则表达式或多个方法调用而变得难以处理。有没有办法引用被更改的对象而不必重写所有内容?

编辑:对不起以前的含糊不清。

1 个答案:

答案 0 :(得分:0)

Ruby在设置左侧等于它之前评估等号的右侧,所以如果i已经存在,你可以做你正在谈论的事情。一个简单的例子:

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

但是,您无法使用i来定义自己。您可以使用以下两行:

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