Ruby中!!的妙用

!!true和!!false,加上!!似乎有点多余,但是在!!nil时就不同了,返回的结果为false。

 

  # 判断用户是否登录
  def logged_in?
    !!current_login_space
  end

  # 取出当前登录用户
  def current_login_space
    @current_space = Space.find(cookies[:space_id])
  end

 

如果用户未登录,则current_login_space返回的值就为nil,如果将这个空值当做fasle赋值给其他变量,则有可能出现莫名其妙的问题,这时候加上!!后,nil就变为了false,避免了可能出现的潜在问题。

你可能感兴趣的:(Ruby)