ruby - @current_user ||= login_from_session 中 ||= 的用法 ?
迷茫
迷茫 2017-04-21 10:56:39
0
2
979

本想google, 但不知道這樣的用法怎麼去搜索,隻能在這問了。
代碼:

def current_user
    @current_user ||= login_from_session
  end
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
PHPzhong
# 等价于
@current_user = @current_user || login_from_session

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

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

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板