条件演算子とif式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/23 06:06 UTC 版)
条件演算子をサポートしない言語であっても、ifが文ではなく式となっている言語では、if式を用いることで同等の機能を実現できる。例えばF#には組み込みの条件演算子はないが、以下のようにif式で代用できる。 printfn "Now %s." (if (System.DateTime.Now.Hour >= 12) then "PM" else "AM") その他、無名関数を応用したものもある。例えばSmalltalkでは関数呼び出しに相当するメッセージ式に無名関数に相当するブロックを渡すことで条件式を実現している。 value := 0 < 1 ifTrue:[ 1 ] ifFalse: [ 2 ]. なお、この#ifTrue:#ifFalse:は分岐専用の構文ではなくメッセージ式の一例に過ぎない。メッセージ式は誰でも追加できるため、標準のライブラリーだけでも下記のような亜種が存在する。 value := 0 < 1 ifTrue:[ 1 ].value := value ifNil:[ 1 ] ifNotNil[ 2 ].value := value ifNil:[ 1 ].value := value ifNotNil:[ :argument | 1 ].value := value at: 1 ifAbsent:[ 0 ].
※この「条件演算子とif式」の解説は、「条件演算子」の解説の一部です。
「条件演算子とif式」を含む「条件演算子」の記事については、「条件演算子」の概要を参照ください。
- 条件演算子とif式のページへのリンク