【问题标题】:loading documents on IRB ruby在 IRB rub​​y​​ 上加载文档
【发布时间】:2011-06-20 08:25:48
【问题描述】:

我正在尝试将文件加载到 IRB。我在桌面上保存了名为“Ruby.rb”的文件 如何将文件加载到 IRB?

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

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

【问题讨论】:

    标签: irb


    【解决方案1】:

    这取决于您使用的 Ruby 版本(1.8.x 或 1.9.x)。 loadrequire 都在 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文件的内容是:

    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
    

    requireload 的区别是:

    • require 不需要文件的后缀(.rb)
      • require 'ruby'require 'ruby.rb' 是一样的
    • require 将文件读入内存一次,因此通常应使用require 而不是load,后者会在每次调用文件中的函数时将文件读入内存。

    所以要加载文件(通过使用requireload),请执行以下操作: - 通过当前目录扩展加载路径(如有必要)。见Adding a directory to loadpath - (使用 Ruby 1.8.x 时)在要从中加载或需要文件的目录中启动程序(或 IRB)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多