Ruby · Intermediário · Inglês · Técnico
safe navigation
Operador &. que chama o método só se o objeto não for nil; se for, devolve nil sem erro. Evita cadeias de verificações.
Onde usar
Resolve casos como usuario&.endereco&.cidade quando partes podem faltar. Usado em excesso, porém, esconde dados que deveriam existir e adia o erro para longe da causa.
Em código
usuario = nil
p usuario&.nome # => nil
usuario = Struct.new(:nome).new('Ana')
p usuario&.nome # => "Ana"
p usuario&.nome&.upcase # => "ANA"Exemplos
Use the safe navigation operator in case the user is nil.
Use o operador de navegação segura caso o usuário seja nil.
Too much safe navigation hides real bugs.
Navegação segura demais esconde bugs de verdade.
Cuidado
Não troque todo ponto por &.: ele só protege contra nil, não contra false nem contra métodos inexistentes.
Sinônimos
operador lonely, &.