Ruby 为什么我能';是否使用“load”加载具有特定文件名的脚本?
昨天我发现,我无法使用Ruby 为什么我能';是否使用“load”加载具有特定文件名的脚本?,ruby,load,filenames,Ruby,Load,Filenames,昨天我发现,我无法使用load重新加载脚本rss.rb。它只在几秒钟内为我执行未知的操作,返回true,并且不执行脚本。但是使用require\u relative可以毫无问题地加载(一次)。我必须重命名脚本文件,才能按我的意愿使用它。 那么为什么要求\u relative起作用,而load不起作用呢?以及如何知道哪些文件名不能加载load? 我正在使用ruby 1.9.2p0(2010-08-18)[i386-mingw32] UPD:C:>类型1.rb p加载“rss.rb” p加载'2.r
load
重新加载脚本rss.rb
。它只在几秒钟内为我执行未知的操作,返回true
,并且不执行脚本。但是使用require\u relative
可以毫无问题地加载(一次)。我必须重命名脚本文件,才能按我的意愿使用它。那么为什么
要求\u relative
起作用,而load
不起作用呢?以及如何知道哪些文件名不能加载load
?我正在使用ruby 1.9.2p0(2010-08-18)[i386-mingw32] UPD:C:>类型1.rb p加载“rss.rb” p加载'2.rb'
C:>键入rss.rb p'rss.rb已加载'
C:>类型2.rb p“2.rb已加载”
C:>Ruby1.rb 符合事实的 “2.rb已加载”
正确您正在从标准库加载rss.rb
load
首先通过$load\u路径
,只有在那里找不到文件时,才会在当前目录中查找该文件
通过执行加载“/rss.rb”
,可以使其仅在当前目录中显示
它使用require\u relative
的原因是require\u relative
从不查看$LOAD\u路径
使用load
时,应记住load
,与require\u relative
不同,它将在当前目录中查找文件,而不是在脚本所在的目录中。因此,它是否找到文件取决于调用脚本时所处的目录。(当然,在以前的ruby版本中,使用require
加载本地文件也是如此)。您正在从标准库加载rss.rbload
首先通过$load\u路径
,只有在那里找不到文件时,才会在当前目录中查找该文件
通过执行加载“/rss.rb”
,可以使其仅在当前目录中显示
它使用require\u relative
的原因是require\u relative
从不查看$LOAD\u路径
使用load
时,应记住load
,与require\u relative
不同,它将在当前目录中查找文件,而不是在脚本所在的目录中。因此,它是否找到文件取决于调用脚本时所处的目录。(当然,在以前的ruby版本中,使用require
加载本地文件也是如此)
C:> type 1.rb
p load 'rss.rb'
p load '2.rb'
C:> type rss.rb
p 'rss.rb loaded'
C:> type 2.rb
p '2.rb loaded'
C:> ruby 1.rb
true
"2.rb loaded"
true