ruby 的 require require_relative

本文介绍了Ruby中的require和require_relative方法的使用方式及区别。require方法会根据$LOAD_PATH环境变量来查找并加载指定的文件,而require_relative则直接根据文件本身的相对路径进行加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

require

require 是 kernel的一个方法
require filename
如果filename 是一个相对路径 则从 $LAOD_PATH寻找相应的文件(.rb,.so,.dll)

note: $LOAD_PATH 指的是Ruby读取外部文件的一个环境变量,其实和windows的环境变量是一个概念。Ruby会在这个环境变量的路径中读取需要require的文 件,如果在环境变量中找不到自己想要的文件,就会报LoadError错误。

如果 filename 是一个绝对路径,那么就寻找绝对路径
延展: 使用File.expand_path可以把其参数从相对路径转化为绝对路径的方法。example: File.expand_path(“../xx”,FILE)


require_relative

require_relative 是 kernel 的一个方法
require_relative filename
就是 取相对路径 只不过这时候,与$LOAD_PATH 没什么关系,是文件本身路径的相对地址