[Ruby] Kernelの特殊変数をできるだけ$記号なしで書いてみる

こんにちは、hachi8833です。 Rubyスタイルガイドを読む: 文法(6)で以下のスタイルを扱いました。 Perl由来の特殊変数($:とか$;とか)は極力避けること 読みやすさのためにも$で始まる特殊変数は置き換えたいのですが、手頃な置き換え表がないので自分で作ってみました。 追記 特殊変数に英語名を追加するEnglishという標準ライブラリがあることを教えていただきましたので、この記事に反映しました。ありがとうございます! Ruby は require 'English' をデフォルトにして欲しいなあ… https://t.co/V07n8MHP4q https://t.co/DzGA7tiGyo — Takashi Masuda (@masutaka) 2017年1月31日 組み込み変数について まずはRubyの組み込み変数についてリファレンスを確認しました。 `$’で始まる変数はグローバル変数で、プログラムのどこからでも参照できます(その分、利用には注意が必要です)。 グローバル変数には宣言は必要ありません。初期化されていないグローバル変数を参照した時の値はnilです。 グローバル変数には Ruby 処理系によって特殊な意味を与えられているものがあります。これらを組み込み変数と呼びます。 組み込み変数は文法解析上はグローバル変数として扱われます。しかし、実際のスコープは必ずしもグローバルとは限りません。 Rubyリファレンス: 組み込み変数より メモ Ruby 2.4.0のKernelの特殊変数にもとづいています。 追記: require ‘english’すると使える英名の後ろには「●」をつけています。 よく使いそうな順にグループ化しました。 「初期値」は、該当する場合のみ記載します。 現在使われてない変数($KCODEなど)や非推奨変数($+や$IGNORECASEなど)は含めていません リンクのtooltipに表示される読みはGoogle検索しやすくするためのものであり、正式な読みとは限りません。 正規表現関連 $を使う変数 内容(クラス、初期値) 特性 同等の英文字変数など $~ 最後のマッチのオブジェクト(MatchData、nil) ローカルスコープかつスレッドローカル Regexp#last_match$LAST_MATCH_INFO ● $& 最後にマッチした文字列(String、nil) ローカルスコープかつスレッドローカル読み取り専用 Regexp#last_match[0]$MATCH ● $` … Continue reading [Ruby] Kernelの特殊変数をできるだけ$記号なしで書いてみる