16

これは測量士gemのGemspecファイルで見つかりました。次の行は何をしますか?

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

どうして$:.pushそんなことをするの?私にはそれはただrequires../lib/surveyor/versionファイルのように見えます。もしそうなら、私はそれを次の1行に置き換えることはできませんか?

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

これらは両方とも同じものですか?そうでない場合、違いは何ですか?

4

1 に答える 1

17

$:はRubyのロードパスであるため、実際には、この配列に存在するフォルダーのサブフォルダーを追加して、/libこの__FILE__gemの他のファイルをrequiredにすることができます。

于 2012-04-29T14:35:02.397 に答える