Edited at

Railsで!!(エクスクラメーションマーク・びっくりマーク2つ)の書式について

More than 3 years have passed since last update.

「パーフェクトRuby on Rails」の書籍を見て気になったコードです。

def logged_in?

!!session[:user_id]
end

「!!session」の部分です。

わかりやすい記述がありましたので以下を参照します。

★Murayama blog - double exclamation

 http://murayama.hatenablog.com/entry/20090713/1247455007


コードを要約すると、変数の値がnilだった場合、

「そのままnilを返却するのではなく、falseに置き換えてから返却したい」ときに!!を利用するようです。


メソッドの「logged_in?」で真偽値という述語記述をしていますので、「!!」でfalseで返したほうがより良いということのようです。