我创建了一个类Contact
的文件。我在irb或pry会话中加载了该文件。我能够访问Contact
。
然后我在文件中将Contact
更改为Vendor
,然后在仍运行irb或pry会话时重新加载文件。我现在可以访问旧的Contact
和新的Vendor
类。
如果我重新启动irb或pry会话并加载相同的文件,这次只能访问Vendor
。这是一个众所周知的故障吗?
答案 0 :(得分:1)
正如其他程序的工作方式一样,Ruby解释器将内容读入随机存取存储器(RAM),并根据RAM中的内容执行。加载文件后,对文件所做的更改无关紧要。从第一次加载开始,RAM中就有Contract
。只要进程仍在运行,重新加载具有不同内容的同一文件就不会从RAM中删除任何内容。