I go into irb and require a file
irb> require_relative 'prime'
irb> true
Run Code Online (Sandbox Code Playgroud)
该文件包含以下代码:
def is_prime? num
(2..num-1).each do |div_by|
if num % div_by == 0
return false
end
end
true
end
Run Code Online (Sandbox Code Playgroud)
在irb中需要文件,我可以使用该方法,例如
irb> require_relative 'prime'
irb> is_prime? 10
irb> -> false
irb> is_prime? 11
irb> -> true
Run Code Online (Sandbox Code Playgroud)
但是,如果我修改源文件,请说add puts 'HHH',除非退出控制台并重新输入然后再require显示文件,否则它不会显示
如果我留在控制台中并再次要求该文件,我将得到错误的消息,因为该文件已被加载,并且无法获得新的更改
我试过了
irb> reload
Run Code Online (Sandbox Code Playgroud)
和
irb> reload!
Run Code Online (Sandbox Code Playgroud)
但他们给我
NoMethodError (undefined method `reload!' for main:Object)
Run Code Online (Sandbox Code Playgroud)
我也尝试过
irb> load 'prime.rb'
irb> => true
Run Code Online (Sandbox Code Playgroud)
但没有拿起零钱
使用PRY得出相似的结果
尝试Kernel#load使用rb文件的相对路径:
irb> load './path/to/prime.rb'
Run Code Online (Sandbox Code Playgroud)
Kernel#require仅一次加载源文件,而Kernel#load每次调用时均加载一次。
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |