要添加到现有字符串,这就是我正在做的事情。
s = 'hello'
s.gsub!(/$/, ' world');
有没有更好的方法来追加到现有字符串。
在有人提出以下答案之前,lemme表明该行不通
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
在上述情况下,object_id在两种情况下会有所不同。
要添加到现有字符串,这就是我正在做的事情。
s = 'hello'
s.gsub!(/$/, ' world');
有没有更好的方法来追加到现有字符串。
在有人提出以下答案之前,lemme表明该行不通
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
在上述情况下,object_id在两种情况下会有所不同。
Answers:
您可以使用<<
原位附加到字符串。
s = "foo"
old_id = s.object_id
s << "bar"
s #=> "foobar"
s.object_id == old_id #=> true
<<
已经修改了对象的状态。也是concat
。
widget.notes.where(:author_id => a).first
大概每次都返回一个新对象,该对象将具有自己的独立字符串。
您还可以使用以下内容:
s.concat("world")
<<
也应该是可链接的,因为它返回字符串。
请问为什么这很重要?
我知道这不是您问题的直接答案,但是您尝试保留字符串的对象ID的事实可能表明您应该再次查看尝试做的事情。
例如,您可能会发现,依赖字符串的对象ID会导致难以跟踪的错误。