Skip to content

[PROPOSE]:3値論理演算子 #27

@taiseiue

Description

@taiseiue

3値論理演算子

概要

論理演算のどちらかのオペランドがnullの場合に、3値ロジックを適用して論理演算できるようにしたい。

動機

bool?型を使った3値ロジック演算を使いたいから。

詳細設計

左右両方がbool型(null許容/非許容問わず)またはVAR?型の場合に3値論理演算を行う。
それ以外の型ではINVALID_OPERAND(0x003)にする。

演算子は、!&|^をサポートする。短絡評価はサポートしない。

論理構成

真偽値表

x op y
x y !x x & y x | y x ^ y
true true false true true false
true false false false true true
true null false null true null
false true true false true true
false false true false false false
false null true false null null
null true null null true null
null false null false null null
null null null null null null

方針

  • nullに対するNOT演算は、そのままnullとなる
  • XOR演算でxとyどちらかがnullの場合は、nullとなる
  • OR、AND演算はクリーネの3値論理に従う

参考

欠点

前例

未確定の設計

Discussion

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or requestimplementedサンプル実装済みrelease-noteリリースノートに反映済み

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions