ExpertiDict

Ruby · Intermediário · Inglês · Técnico

safe navigation

/seɪf ˌnævɪˈɡeɪʃən/operador

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, &.

Veja também

Todos os termos de Ruby