要附加到现有字符串,这就是我正在做的事情。
s = 'hello'
s.gsub!(/$/, ' world');
是否有更好的方法可以附加到现有字符串。
在有人建议以下答案之前,lemp显示这个不起作用
s = 'hello'
s.object_id
s = s + ' world'
s.object_id
在上述情况下,object_id对于两种情况会有所不同。
答案 0 :(得分:158)
您可以使用<<
就地附加到字符串。
s = "foo"
old_id = s.object_id
s << "bar"
s #=> "foobar"
s.object_id == old_id #=> true
答案 1 :(得分:51)
您还可以使用以下内容:
s.concat("world")
答案 2 :(得分:4)
我可以问为什么这很重要吗?
我知道这不是您问题的直接答案,但是您尝试保留字符串的对象ID这一事实可能表明您应该再次查看您要执行的操作。
例如,您可能会发现依赖字符串的对象ID会导致很难跟踪的错误。
答案 3 :(得分:1)
还有另一种方式:
s.insert(-1, ' world')
答案 4 :(得分:0)
这是另一种方式:
fist_segment = "hello,"
second_segment = "world."
complete_string = "#{first_segment} #{second_segment}