Это зависит от того, как именно вы определяете «что-то вроде».
Если вы хотите сделать так, чтобы все переменные, которые указывают на данный объект Some
, теперь вместо этого указывают на строку, которая является результатом a + b
, это невозможно.
Если вы хотите изменить строковое содержимое данного объекта Some
, вы можете использовать метод replace
, т.е. replace(a+b)
.
Чтобы проиллюстрировать разницу между использованием replace
и переназначением:
class Some < String
def m1(a, b)
replace( a + b )
end
end
s1 = Some.new("hello")
p s1.object_id # some number
s1.m1("one ", "two")
p s1 # "one two"
p s1.object_id # the same number as above
p s1.class # Some
s2 = Some.new("hello")
p s2.object_id # some number
s2 = "one " + "two"
p s2 # "one two"
p s2.object_id # a different number
p s2.class # String
Последнее поведение недостижимо при использовании метода.