16

我在测量员 gem的 Gemspec 文件中找到了这个。以下行有什么作用?

$:.push File.expand_path("../lib", __FILE__)
require "surveyor/version"

为什么$:.push事情会这样?在我看来,它只是requires文件../lib/surveyor/version。如果是这样,我不能用以下一行替换它吗?

require File.expand_path('../lib/surveyor/version', __FILE__)

这两者是一回事吗?如果不是,那有什么区别?

4

1 回答 1

17

$:是 Ruby 的加载路径,因此它实际上是将所在文件夹的 a 子文件/lib夹添加__FILE__到该数组中,以便可以required.

于 2012-04-29T14:35:02.397 回答