[ruby-list:61] Re: nil and FALSE

From: matz@... (Yukihiro Matsumoto)
Date: 1996-01-10 07:24:19 UTC
List: ruby-list #61
まつもと ゆきひろ@トヨタケーラムです.

In message "[ruby-list:60] Re: nil and FALSE"
    on 96/01/10, Tetsunori Matsubara - Nihon Sun IR <Tetsunori.Matsubara@sun.co.jp> 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票ですね.

|変な事言ってたら指摘して下さい。

いいえ,ぜんぜん変な事じゃないです.定数と値の紛らわしさを指
摘してくださってありがとうございます.

                                まつもと ゆきひろ /:|)

In This Thread

Prev Next