質問
Ruby 2.5.0 リファレンスマニュアル > 変数と定数では以下のように書かれています
nil
NilClassクラスの唯一のインスタンス Object#frozen? は true を返します。true
TrueClassクラスの唯一のインスタンス。真の代表値 Object#frozen? は true を返します。false
FalseClassクラスの唯一のインスタンス。nilとfalseは偽を表します。 Object#frozen? は true を返します。
Rubyはcase-sensitiveなプログラム言語だと思っています(公式ドキュメントで明言しているものは見つけられなかったです)。
そのため NIL
TRUE
FALSE
という変数は存在していないと思っていました。
Ruby 2.5.0 リファレンスマニュアル > 字句構造: 予約語にも記載されていませんし。
しかし実際にはNIL
TRUE
FALSE
という変数は存在していて、小文字のnil
true
false
と等価になります。
[user@centos7 ~]$ ruby -e 'puts NIL' [user@centos7 ~]$ ruby -e 'puts TRUE' true [user@centos7 ~]$ ruby -e 'puts FALSE' false
疑似変数はcase-insentiveなのかと思ったのですが、同じ擬似変数である self
では以下のような結果になります。
[user@centos7 ~]$ ruby -e 'puts SELF' -e:1:in `<main>': uninitialized constant SELF (NameError)
NIL,TRUE,FALSEとは何なのでしょうか?
追記
Ruby 2.4 has deprecated toplevel constants TRUE, FALSE and NILにこれに関連する話題を見つけました
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/11 05:07