str = "Welcom to china"
str1 = str

puts str + " 1"
puts str1 + " 1"

def switch(str)
str.replace("Happy to china")
end

switch(str.dup)
puts str + " 2"
puts str1 + " 2"

  

输出为

Welcom to china 1
Welcom to china 1
Welcom to china 2
Welcom to china 2

str = "Welcom to china"
str1 = str

puts str << " 1"
puts str1 << " 1"

def switch(str)
str.replace("Happy to china")
end

switch(str.dup)
puts str << " 2"
puts str1 <<" 2"

输出为:

Welcom to china 1
Welcom to china 1 1
Welcom to china 1 1 2
Welcom to china 1 1 2 2

发现没有,二者是不一样的,str << 1,相当于执行了str.replace(str + "1"),修改了原始引用, 再打印出来,而str + "1"则不会修改原始引用值。

posted on 2019-08-09 17:18  bluesky0318  阅读(629)  评论(0编辑  收藏  举报