Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中字符串是可变的吗?_Ruby_String_Immutability_Mutable - Fatal编程技术网

在Ruby中字符串是可变的吗?

在Ruby中字符串是可变的吗?,ruby,string,immutability,mutable,Ruby,String,Immutability,Mutable,在Ruby中字符串是可变的吗?按照惯例 创建一个值为“hello world”的新字符串对象 str = "hello" str << " world" str=“你好” str是的,“你好” irb(主):012:0>str.object\u id => 22269036 irb(主要):013:0>str“你好,世界” irb(主):014:0>str.object\u id => 22269036 irb(main):015:0>str=str+“世界” =>“你好,世界”

在Ruby中字符串是可变的吗?按照惯例

创建一个值为“hello world”的新字符串对象

str = "hello"
str << " world"
str=“你好”
str是的,
“你好”
irb(主):012:0>str.object\u id
=> 22269036
irb(主要):013:0>str“你好,世界”
irb(主):014:0>str.object\u id
=> 22269036
irb(main):015:0>str=str+“世界”
=>“你好,世界”
irb(主):016:0>str.object\u id
=> 21462360
irb(主要):017:0>

作为补充,这种可变性的一个含义如下:

ruby-1.9.2-p0 :001 > str = "foo"
 => "foo" 
ruby-1.9.2-p0 :002 > ref = str
 => "foo" 
ruby-1.9.2-p0 :003 > str = str + "bar"
 => "foobar" 
ruby-1.9.2-p0 :004 > str
 => "foobar" 
ruby-1.9.2-p0 :005 > ref
 => "foo" 

是的,它们是:

x = "hallo"
x[1] = "e"

p x # "hello"

+为了演示如何确定对象是否确实相同或不同,有人能向我解释一下为什么这个答案被否决了吗?
ruby-1.9.2-p0 :001 > str = "foo"
 => "foo" 
ruby-1.9.2-p0 :002 > ref = str
 => "foo" 
ruby-1.9.2-p0 :003 > str = str + "bar"
 => "foobar" 
ruby-1.9.2-p0 :004 > str
 => "foobar" 
ruby-1.9.2-p0 :005 > ref
 => "foo" 
ruby-1.9.2-p0 :001 > str = "foo"
 => "foo" 
ruby-1.9.2-p0 :002 > ref = str
 => "foo" 
ruby-1.9.2-p0 :003 > str << "bar"
 => "foobar" 
ruby-1.9.2-p0 :004 > str
 => "foobar" 
ruby-1.9.2-p0 :005 > ref
 => "foobar" 
ruby-1.9.2-p0 :001 > "foo" == "foo"
 => true 
ruby-1.9.2-p0 :002 > "foo".object_id == "foo".object_id
 => false 
ruby-1.9.2-p0 :003 > :foo == :foo
 => true 
ruby-1.9.2-p0 :004 > :foo.object_id == :foo.object_id
 => true 
x = "hallo"
x[1] = "e"

p x # "hello"