首頁  >  問答  >  主體

ruby - @current_user ||= login_from_session 中 ||= 的用法 ?

本想google, 但不知道这样的用法怎么去搜索,只能在这问了。
代码:

def current_user
    @current_user ||= login_from_session
  end
迷茫迷茫2762 天前963

全部回覆(2)我來回復

  • PHPz

    PHPz2017-04-21 10:58:39

    # 等价于
    @current_user = @current_user || login_from_session

    如果這樣寫在多行程式碼中,確實是 空指针保护
    但在你的問題中,整個方法中只有這一行,這個技巧應該叫 Caching with Instance Variables,為了在多次呼叫這個方法時提高效能

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 10:58:39

    @current_user ||= login_from_session
    # 等价与
    @current_user || @current_user = login_from_session
    # 如果 @current_user 不为 nil 或 false,
    # 就使 @current_user 值为 login_from_session 的返回值

    這是 Ruby 程式設計師的常用方法: 空指针保护

    回覆
    0
  • 取消回覆