組み込み定数の種類と使い方

定数は自分で定義するものの他にあらかじめ定義されている定数があります。ここでは Ruby であらかじめ定義されている定数について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 16 日更新)

組み込み定数の一覧

Ruby であらかじめ定義されている定数には次のようなものがあります。

定数
ARGFObject
ARGVArray
DATAFile
ENVObject
RUBY_COPYRIGHTString
RUBY_DESCRIPTIONString
RUBY_ENGINEString
RUBY_ENGINE_VERSIONString
RUBY_PATCHLEVELInteger
RUBY_PLATFORMString
RUBY_RELEASE_DATEString
RUBY_REVISIONString
RUBY_VERSIONString
SCRIPT_LINES__Hash
STDERRIO
STDINIO
STDOUTIO
TOPLEVEL_BINDINGBinding

一部の定数についてどのような値が格納されているのか見てみます。

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 )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。