Ruby の「$」文字は何を意味しますか?
概要
しばらく Ruby on Rails を使って遊んでいたので、実際のソースを見てみることにしました。 GitHub からリポジトリを取得し、調べ始めました。何をするのか、何を参照しているのかわからないコードがいくつかありました。
このコードはactionmailer/test/abstract_unit.rbにありました
root = File.expand_path('../../..', __FILE__)
begin
require "#{root}/vendor/gems/environment"
rescue LoadError
$:.unshift("#{root}/activesupport/lib")
$:.unshift("#{root}/actionpack/lib")
end
lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
$:.unshift(lib) unless $:.include?('lib') || $:.include?(lib)
require 'rubygems'
require 'test/unit'
require 'action_mailer'
require 'action_mailer/test_case'
$: (別名「キラキラ」) が何を参照しているのか誰か教えてもらえますか?
解決策
$ は、ローカル変数、@instance 変数、または @@class 変数ではなく、グローバル変数を識別します。
言語が提供するグローバル変数の中には $: があり、これも次の方法で識別されます。