Rubyの!!(not not)というイディオムについて

タグ: ruby / 公開: 2014-03-10

Rubyで稀に目にする!!というイディオムがある。 具体的には以下のように使われる。

!!val

このイディオムは、値valを真偽値に変換するものだ。 !!はnot演算子!を2つ重ねたもので、以下と同じである。

!(!val)

このイディオムの返却値は以下のとおり。 値がfalsenil以外ならtrueを、falsenilならfalseを返す。

!!nil   #=> false
!!"abc" #=> true
!!false #=> false

not演算子は値がfalsenilならtrueを返す。 これを2つ重ねて結果を反転させることで、値を真偽値に変換できるようになるのだ。

この記事をSNSでシェアする
タイトルとURLをコピーする
または投稿画面を開く
Author
Icon
ぺけみさお / xmisao
プログラマ。
Subscription
Recent articles
Related to ruby