IDE 慢死了
另外中文书一般不说人话的 哈哈
t = s
的时候 t 和 s 指向相同的内存地址 因此t[-1] = ""
当然也会修改 s 的内容
然后t = "Java"
的时候 t 指向"Java"
所在的地址了 和 s 不再指向相同位置了 因此 s 不发生改变 以后对 t 的修改也不会导致 s 的变化了
很难理解嘛?
这个是追查责任人的最佳利器 但是还是有很多缺陷啦。。 比如 A 是某 Bug 的始作俑者,B C D E F G ... 等人只是对 A 的代码做了些简单的修改,比如改了改缩进加了个注释什么的。。但是这行代码的作者就变了 要追查出始作俑者 A 就很不容易了
#1 楼 @luikore #2 楼 @zj0713001 谢谢了 成功解决 原因是我们有代码里写的是 require 'RMagick' 又有代码写 require 'rmagick' 所以这样了。。 我觉得 Ruby 这个蛮啥的 $LOADED_FEATURES 里不 ignore 大小写 但是 require 的时候却是 ignore 的。。
#2 楼 @zj0713001 不知道 我有空研究下
这个方法有局限性吧,关键是 validation scope 这样的语句 不能移走吧。。
# 非法
class C
def f
self.private_method_a
end
end
# 合法
class C
def f
private_method_a
end
end
总的来说就是私有方法不能前面加 context,即使那个 context 是 self 也不行。 那个我觉得差异不大吧。但是 self 概念更加广泛些。。