gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:18:24 25 4
gpt4 key购买 nike

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

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

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

最佳答案

这取决于您使用的 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 的同一 session 可能如下所示:
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 之间的区别和 load是:
  • require不需要文件的后缀 (.rb)
  • require 'ruby'require 'ruby.rb'是一样的
  • require将文件读入内存一次,所以 require通常应该使用而不是 load ,每次调用文件中的函数时都会将文件读入内存。

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

    关于irb - 在 IRB rub​​y​​ 上加载文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408534/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com