What does !! mean in ruby?

ruby

Solution

Not not.

It's used to convert a value to a boolean:

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

It's usually not necessary to use though since the only false values to Ruby are `nil` and `false`, so it's usually best to let that convention stand.

Think of it as

!(!some_val)

One thing that is it used for legitimately is preventing a huge chunk of data from being returned. For example you probably don't want to return 3MB of image data in your `has_image?` method, or you may not want to return your entire user object in the `logged_in?` method. Using `!!` converts these objects to a simple `true`/`false`.

Problem

Just wondering what `!!` is in Ruby.

Original source

Related problems