本想google, 但不知道這樣的用法怎麼去搜索,隻能在這問了。 代碼:
def current_user @current_user ||= login_from_session end
业精于勤,荒于嬉;行成于思,毁于随。
# 等价于 @current_user = @current_user || login_from_session
如果這樣寫在多行程式碼中,確實是 空指针保护 但在你的問題中,整個方法中只有這一行,這個技巧應該叫 Caching with Instance Variables,為了在多次呼叫這個方法時提高效能
空指针保护
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 程式設計師的常用方法: 空指针保护 。
如果這樣寫在多行程式碼中,確實是
空指针保护
但在你的問題中,整個方法中只有這一行,這個技巧應該叫
Caching with Instance Variables
,為了在多次呼叫這個方法時提高效能這是 Ruby 程式設計師的常用方法:
空指针保护
。