Maison  >  Questions et réponses  >  le corps du texte

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

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

def current_user
    @current_user ||= login_from_session
  end
迷茫迷茫2762 Il y a quelques jours959

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-21 10:58:39

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

    Si écrit ainsi sur plusieurs lignes de code, c'est bien 空指针保护
    Mais dans votre question, il n'y a que cette ligne dans toute la méthode, cette astuce devrait être appelée Caching with Instance Variables, afin d'améliorer les performances lors de l'appel de cette méthode plusieurs fois

    répondre
    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 的返回值

    Il s'agit d'une approche courante parmi les programmeurs Ruby : 空指针保护 .

    répondre
    0
  • Annulerrépondre