From: matz@... (Yukihiro Matsumoto) Date: 1996-01-10T16:24:19+09:00 Subject: [ruby-list:61] Re: nil and FALSE まつもと ゆきひろ@トヨタケーラムです. In message "[ruby-list:60] Re: nil and FALSE" on 96/01/10, Tetsunori Matsubara - Nihon Sun IR writes: |松原@日本サンです。 |> 今でもFALSEという定数はあるんです.ただ,FALSEという*値*が無 |> いだけで. | |この文を見て info の組み込み変数と定数の部分の「`TRUE'の値はt,`FALSE'の値 |は`nil' 」という文章を発見したのですが、混乱してしまいました。定数と値とは |具体的にどう違うのか教えていただけないでしょうか? 混乱しましたか? ごめんなさい. えーと,infoは現状(FALSEとnilに区別が無い)に基づいて記述され ています.ですから,FALSEという「値」はまったく存在しません. 定数は値の変更できない変数だと思ってください. 現状の0.95cの仕様では * 定数TRUEの値は特別なオブジェクト`t' * 定数FALSEの値は`nil' * 疑似定数nilの値は`nil' になっています.nilは変数名であり,オブジェクトでもあります. で,今検討している(3)案を採用すると * 定数TRUEの値は特別なオブジェクト`TRUE' * 定数FALSEの値は特別なオブジェクト`FALSE' * 疑似定数nilの値は`nil' となります(0.96からは`t'は`TRUE'に変更). TRUE, FALSE, nilが名前であると同時に値(オブジェクト)を表すの で,混乱を招いたのかも知れません. |個人的には 真偽値としてTRUE, FALSE という定数(値?)があり、それとは別に |nil という値があって nil の真偽は常に偽として評価されるというのがしっくり |きます。 これはまさに(3)案ですね.また(3)に1票ですね. |変な事言ってたら指摘して下さい。 いいえ,ぜんぜん変な事じゃないです.定数と値の紛らわしさを指 摘してくださってありがとうございます. まつもと ゆきひろ /:|)