Techioz Blog

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 変数ではなく、グローバル変数を識別します。

言語が提供するグローバル変数の中には $: があり、これも次の方法で識別されます。