QA@IT
«質問へ戻る

質問を投稿

Rubyで !! という二重否定を単項演算子として使う理由は?

ときどき見かけて不思議に思っているのですが、

def foo?
  !!bar
end

というイディオムは、どういう意味でしょうか?

def foo?
  bar
end

と書くのと結果は違わないような気がするのですが、そうではないのでしょうか? booleanを返すようにしてるのかなと想像しているのですが、Rubyだとfalseとnil以外はtrueとなるので両者は違わないのでは?

ときどき見かけて不思議に思っているのですが、

```ruby
def foo?
  !!bar
end
```

というイディオムは、どういう意味でしょうか? 

```ruby
def foo?
  bar
end
```

と書くのと結果は違わないような気がするのですが、そうではないのでしょうか? booleanを返すようにしてるのかなと想像しているのですが、Rubyだとfalseとnil以外はtrueとなるので両者は違わないのでは?