[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.5 未定義値

Gaucheで作業していると、しばしば未定義値 #<undef> に出会うことがあるでしょう。

 
gosh> (if #f #t)
#<undef>

この値は、値そのものに意味が無いこと、あるいは とりたててほかにふさわしい値が無いことを意味します。

未定義値と未束縛の変数を混同しないようにしてください。 #<undef>は通常の第一級の値であり、変数に束縛しておくこともできます。 未束縛の変数は文字通り、変数が束縛されていない、すなわち値を持たないことを意味します。

しかし、場合によっては、変数に特定の値が提供されていないことを 示すのに#<undef>が使われることもあります。 例えば、既定値をもたない省略可能引数に実引数が提供されなかった 場合、引数の値は#<undef>となります (手続きを作る参照)。 これは実際に#<undef>が引数として渡された場合と区別がつかない ことに注意してください。#<undef>を受け取ってわかることは、 せいぜいその値にたいした意味がないということくらいです。 #<undef>に大きな意味を持たせすぎないようにしましょう。

以上の注意を念頭においた上で、未定義値を扱うには 次の手続きが利用できます。

Function: undefined? obj

objが未定義値である場合に限り#tを返します。

Function: undefined

未定義値を返します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Shiro Kawai on May 28, 2012 using texi2html 1.82.