3. logical (論理型)
logical は、 true と false のブール値を格納します。
Logical.FromText("true") // true
Logical.FromText("false") // false
Logical.From(0) // false
Logical.From(1) // true
Logical.From(-1) // true
4. null 何も示さないもの
null型は、nullを保持する型です。
nullにはざっくりと以下の意味があります。
- 有効でない
- 存在しない
- 保存されていない
- 利用できない
[1] ANSI/X3/SPARC Study Group on Data Base Management Systems, Interim Report, ANSI, February 1975, pp. IV-28~IV-29.
nullは値がないこと、あるいは未知の値であることを表します。この哲学あるいは論理学の問題は、言語設計者がnullを許容した場合の動作を様々な可能な動作の中から選択、あるいは再定義しなければなりません。nullを含む項目の演算には、その結果がどのようになるか、予め知っておく必要があります。
null = null // true
null <> null // false
0 = null // false
null <> 0 // true
以下のように、nullを含む演算は、多くの場合 null になってしまうことに注意してください。
null and null // null
null and true // null
null and false // false
null or null // null
null or true // true
null or false // null
1 > null // null
1 >= null // null
null < null // null
null <= null // null
10 + null // null
null - 16.3 // null
null * 25 // null
8 / null // null
"abc" & null & "def" // null
nullはいわば虚無のように振る舞います。虚無に触れると値は粉砕され無意味になってしまいます。例えば、 nullを含む項目を文字列として結合する場合、戻り値はnullになってしまいますので、特に注意が必要です。 事前に、nullが発生する項目を空白に置き換える作業が必要です。
nullを許容する型は、nullable を指定します。
type null
type any
type nullable <T>
type <T>
type anynonnull
Type.NonNullable(<T>)
関数の引数や戻り値の型にnullを許容するかどうかを明示することができます。
テーブルの項目の型は常にnull許容となり、許容しない指定はできません。