【发布时间】:2014-05-22 13:48:12
【问题描述】:
我显然不太了解按值传递。
irb(main):001:0> a="UPPER CASE STRING"
=> "UPPER CASE STRING"
irb(main):002:0> b=a
=> "UPPER CASE STRING"
irb(main):003:0> a
=> "UPPER CASE STRING"
irb(main):004:0> b
=> "UPPER CASE STRING"
irb(main):005:0> b.downcase
=> "upper case string"
irb(main):006:0> a
=> "UPPER CASE STRING"
irb(main):007:0> b.downcase!
=> "upper case string"
irb(main):008:0> b
=> "upper case string"
irb(main):009:0> a
=> "upper case string"
irb(main):010:0>
为什么是小写,如果按值传递,那么 b 不是 a 的副本吗?
这是因为 a 是一个指向 String 对象的(引用|指针),因此 b 是指针的副本而不是对象吗?
【问题讨论】:
-
你没有在这里传递任何参数,传递值甚至没有发挥作用。
标签: ruby