我在测量员宝石的 Gemspec 文件中找到了这个。下面这一行有什么作用?
$:.push File.expand_path("../lib", __FILE__)
require "surveyor/version"
为什么$:.push
的事情会起作用?对我来说,它看起来只是requires
../lib/surveyor/version
文件。如果是这样,我不能用以下一行替换它吗?
require File.expand_path('../lib/surveyor/version', __FILE__)
这两者都是一回事吗?如果不是,那有什么区别?
$:
是Ruby 的加载路径,因此它实际上是将__FILE__
所在的文件夹的子文件夹/lib
添加到此数组中,以便可以require
此 gem 中的其他文件。