Ruby中加载路径及load、require、require_r

2019-07-25  本文已影响0人  吃果果的蛐蛐

Ruby 库组成: 核心库(core)、标准库(standard library)、第三方库(third-party)
标准库和第三方库需要 require 才可以使用

加载路径

查看加载路径 ruby -e "puts $:"

/Users/zhangjiachen/.rvm/gems/ruby-2.5.3@global/gems/did_you_mean-1.2.0/lib
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/x86_64-darwin18
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/vendor_ruby/2.5.0
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/vendor_ruby/2.5.0/x86_64-darwin18
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/vendor_ruby
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0
/Users/zhangjiachen/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/x86_64-darwin18

当加载一个文件时,Ruby 解释器会从上到下依次在每个子目录搜索

load 用法

load 命令总是会加载所请求的文件,不论这个文件是否已经加载过。
Ruby 解释器遇到 load 的时候才会去寻找要加载的文件,
load 一般用来加载配置文件。
1 创建loaddemo.rb文件

puts "this is the first file"
load "loadee.rb"
puts "and back again to the first file"

2 创建loadee.rb文件

puts "> this is the second file"

3 执行ruby loaddemo.rb
程序执行会打印出

"this is the first file"
"> this is the second file"
"and back again to the first file"

require

loaddemo.rb文件的load "loadee.rb"改为 require "./loadee.rb", 执行ruby loaddemo.rb
如果是require loadee.rb会加载不到loadee.rb文件,因为 require 无法识别当前工作目录。
但是 require_relative "loadee.rb" 可以加载到当前路径的文件。

安装gem 包后 require

执行gem install hoe
打开 irb
注意画红线的部分 hoe 的关联目录出现在加载路径中

image.png
上一篇下一篇

猜你喜欢

热点阅读