2010-12-09 37 views
1

可能重複:
What does !! mean in ruby?!! some_object做什麼?

這是什麼功能做什麼?

def current_product? 
    !!current_product 
end 

這不是雙重否定嗎?

+1

重複[什麼!意思是在紅寶石?](http://stackoverflow.com/questions/524658/what-does-mean-in-ruby)。 – 2010-12-09 02:07:04

回答

5

!!基本上是布爾鑄造。如果current_producttruthy!current_productfalse!!current_producttrue,反之亦然。即它將truthy的值轉換爲truefalsy的值爲false

1

這是你會在每個對象都有一個真值的任何語言看到一個模式,但也有規範布爾值(無論它們被稱爲TrueFalse101""tnil , 隨你)。 !!x本質上是「強制轉換爲布爾值」,因爲!!xx具有相同的真值,但!!x將始終是規範的真/假值之一,而不是任何舊的真/假值。