本想google, 但不知道這樣的用法怎麼去搜索,隻能在這問了。
代碼:
def current_user @current_user ||= login_from_session end
業(yè)精于勤,荒于嬉;行成于思,毀于隨。
# 等價于 @current_user = @current_user || login_from_session
如果這樣寫在多行程式碼中,確實是 空指針保護
但在你的問題中,整個方法中只有這一行,這個技巧應(yīng)該叫 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 程式設(shè)計師的常用方法: 空指針保護
。