在 IRB rub​​y​​ 上加载文档

2024-03-12

我正在尝试将文件加载到 IRB 中。我将文件保存在桌面上,标题为“Ruby.rb” 如何将文件加载到 IRB 中?

我尝试过使用“加载“Ruby.rb””、“加载“Ruby””和“需要“Ruby.rb””。这些文件在我的桌面上,这里是否需要路径目录?

该文档的路径是 C:\Users\Jamal\desktop,我是否打算将其包含到加载“Ruby.rb”命令中? 谢谢


这取决于您使用的 Ruby 版本(1.8.x 或 1.9.x)。load and require两者都在 Ruby 的加载路径上工作。您可以通过评估来看看$:IRB 内部。在 Ruby 1.9.x 中,当前目录不是加载路径的一部分,因此您必须使用文件的绝对路径。根据您使用的操作系统 (Windows 7),这可能如下所示:

c:\Users\mliebelt\Desktop>irb
irb(main):001:0> $:
=> ["C:/apps/ruby/ruby192/lib/ruby/site_ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/site_ruby/1.9.1/i386-msvcrt", "C:/apps/ruby/ruby192/lib/ruby/site_ruby", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby/1.9.1/i386-msvcrt", "C:/apps/ruby/ruby192/lib/ruby/vendor_ruby", "C:/apps/ruby/ruby192/lib/ruby/1.9.1", "C:/apps/ruby/ruby192/lib/ruby/1.9.1/i386-mingw32"]
irb(main):002:0> require 'c:/Users/mliebelt/Desktop/ruby'
File c:/Users/mliebelt/Desktop/ruby.rb loaded.
=> true
irb(main):003:0> load 'c:/Users/mliebelt/Desktop/ruby.rb'
File c:/Users/mliebelt/Desktop/ruby.rb loaded.
=> true

顺便说一下文件的内容ruby.rb is:

puts "File #{__FILE__} loaded."

Ruby 1.8.x 上的 IRB 的相同会话可能如下所示:

c:\Users\mliebelt\Desktop>irb
irb(main):001:0> $:
=> ["C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby/1.8/i386-msvcrt", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/site_ruby", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby/1.8/i386-msvcrt", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/vendor_ruby", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/1.8", "C:/Users/mliebelt/.pik/rubies/Ruby-187-p334/lib/ruby/1.8/i386-mingw32", "."]
irb(main):002:0> require 'ruby'
File ./ruby.rb loaded.
=> true
irb(main):003:0> load 'ruby.rb'
File ./ruby.rb loaded.
=> true

之间的差异require and load are:

  • require does not need the suffix (.rb) of the file
    • require 'ruby' and require 'ruby.rb'是相同的
  • require将文件读入内存一次,所以require通常应该用来代替load,每次调用文件中的函数时都会将文件读入内存。

因此要加载文件(通过使用require or load), 请执行下列操作: - 按当前目录扩展加载路径(如有必要)。看将目录添加到加载路径 https://stackoverflow.com/questions/837123/adding-a-directory-to-load-path-ruby-(使用 Ruby 1.8.x 时)在要从中加载或需要文件的目录中启动程序(或 IRB)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 IRB rub​​y​​ 上加载文档 的相关文章

随机推荐