組み込み定数の種類と使い方
定数は自分で定義するものの他にあらかじめ定義されている定数があります。ここでは Ruby であらかじめ定義されている定数について解説します。
(Last modified: )
目次
組み込み定数の一覧
Ruby であらかじめ定義されている定数には次のようなものがあります。
| 定数 | 値 |
|---|---|
| ARGF | Object |
| ARGV | Array |
| DATA | File |
| ENV | Object |
| RUBY_COPYRIGHT | String |
| RUBY_DESCRIPTION | String |
| RUBY_ENGINE | String |
| RUBY_ENGINE_VERSION | String |
| RUBY_PATCHLEVEL | Integer |
| RUBY_PLATFORM | String |
| RUBY_RELEASE_DATE | String |
| RUBY_REVISION | String |
| RUBY_VERSION | String |
| SCRIPT_LINES__ | Hash |
| STDERR | IO |
| STDIN | IO |
| STDOUT | IO |
| TOPLEVEL_BINDING | Binding |
一部の定数についてどのような値が格納されているのか見てみます。
Rubyのバージョンやプラットフォームの情報
RUBY_ で始まる定数は Ruby に関する情報が格納されています。次のように出力してみました。
# encoding: UTF-8
puts("RUBY_COPYRIGHT : " + RUBY_COPYRIGHT)
puts("RUBY_DESCRIPTION : " + RUBY_DESCRIPTION)
puts("RUBY_ENGINE : " + RUBY_ENGINE)
puts("RUBY_ENGINE_VERSION : " + RUBY_ENGINE_VERSION)
puts("RUBY_PATCHLEVEL : " + RUBY_PATCHLEVEL.to_s)
puts("RUBY_PLATFORM : " + RUBY_PLATFORM)
puts("RUBY_RELEASE_DATE : " + RUBY_RELEASE_DATE)
puts("RUBY_REVISION : " + RUBY_REVISION)
puts("RUBY_VERSION : " + RUBY_VERSION)
実行すると下記のように表示されました。
RUBY_COPYRIGHT : ruby - Copyright (C) 1993-2022 Yukihiro Matsumoto RUBY_DESCRIPTION : ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x64-mingw-ucrt] RUBY_ENGINE : ruby RUBY_ENGINE_VERSION : 3.1.2 RUBY_PATCHLEVEL : 20 RUBY_PLATFORM : x64-mingw-ucrt RUBY_RELEASE_DATE : 2022-04-12 RUBY_REVISION : 4491bb740a9506d76391ac44bb2fe6e483fec952 RUBY_VERSION : 3.1.2
標準入力、標準出力、標準エラー出力
STDIN STDOUT STDERR はそれぞれ標準入力、標準出力、標準エラー出力を表すもので、それぞれ $stdin $stdout $stderr のデフォルト値となっています。
環境変数
ENV は環境変数を表す連想配列が格納されています。次のように出力してみました。
# encoding: UTF-8 p(ENV)
実行すると下記のように表示されました(値はすべて伏字にしてあります)。
{"ALLUSERSPROFILE"=>"XXXXXXXXXXXXXXX",
"APPDATA"=>"XXXXXXXXXXXXXXX",
"asl.log"=>"XXXXXXXXXXXXXXX",
"CommonProgramFiles"=>"XXXXXXXXXXXXXXX",
"CommonProgramFiles(x86)"=>"XXXXXXXXXXXXXXX",
"CommonProgramW6432"=>"XXXXXXXXXXXXXXX",
"COMPUTERNAME"=>"XXXXXXXXXXXXXXX",
"ComSpec"=>"XXXXXXXXXXXXXXX",
"DriverData"=>"XXXXXXXXXXXXXXX",
"FPS_BROWSER_APP_PROFILE_STRING"=>"XXXXXXXXXXXXXXX",
"FPS_BROWSER_USER_PROFILE_STRING"=>"XXXXXXXXXXXXXXX",
"HOME"=>"XXXXXXXXXXXXXXX",
"HOMEDRIVE"=>"XXXXXXXXXXXXXXX",
"HOMEPATH"=>"XXXXXXXXXXXXXXX",
"LOCALAPPDATA"=>"XXXXXXXXXXXXXXX",
"LOGONSERVER"=>"XXXXXXXXXXXXXXX",
"NUMBER_OF_PROCESSORS"=>"XXXXXXXXXXXXXXX",
"OneDrive"=>"XXXXXXXXXXXXXXX",
"OS"=>"XXXXXXXXXXXXXXX",
"Path"=>"XXXXXXXXXXXXXXX",
"PATHEXT"=>"XXXXXXXXXXXXXXX",
"POWERSHELL_DISTRIBUTION_CHANNEL"=>"XXXXXXXXXXXXXXX",
"PROCESSOR_ARCHITECTURE"=>"XXXXXXXXXXXXXXX",
"PROCESSOR_IDENTIFIER"=>"XXXXXXXXXXXXXXX",
"PROCESSOR_LEVEL"=>"XXXXXXXXXXXXXXX",
"PROCESSOR_REVISION"=>"XXXXXXXXXXXXXXX",
"ProgramData"=>"XXXXXXXXXXXXXXX",
"ProgramFiles"=>"XXXXXXXXXXXXXXX",
"ProgramFiles(x86)"=>"XXXXXXXXXXXXXXX",
"ProgramW6432"=>"XXXXXXXXXXXXXXX",
"PROMPT"=>"XXXXXXXXXXXXXXX",
"PSModulePath"=>"XXXXXXXXXXXXXXX",
"PUBLIC"=>"XXXXXXXXXXXXXXX",
"SESSIONNAME"=>"XXXXXXXXXXXXXXX",
"SystemDrive"=>"XXXXXXXXXXXXXXX",
"SystemRoot"=>"XXXXXXXXXXXXXXX",
"TEMP"=>"XXXXXXXXXXXXXXX",
"TMP"=>"XXXXXXXXXXXXXXX",
"USER"=>"XXXXXXXXXXXXXXX",
"USERDOMAIN"=>"XXXXXXXXXXXXXXX",
"USERDOMAIN_ROAMINGPROFILE"=>"XXXXXXXXXXXXXXX",
"USERNAME"=>"XXXXXXXXXXXXXXX",
"USERPROFILE"=>"XXXXXXXXXXXXXXX",
"windir"=>"XXXXXXXXXXXXXXX",
"ZES_ENABLE_SYSMAN"=>"XXXXXXXXXXXXXXX"
}
引数
ARGV は Ruby スクリプトに与えられた引数を表す配列が格納されています。次のように出力してみました。
# encoding: UTF-8 p(ARGV)
次のように実行するときに引数を指定して実行してみると下記のように表示されました。
一部の組み込み定数について、どのような情報が保持されているのか確認してみました。
-- --
Ruby であらかじめ定義されている定数について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。