Ruby · Essencial · Inglês · Técnico
fetch
Método de Hash e Array que busca um valor e, se a chave não existir, lança KeyError, devolve um padrão ou roda um bloco. Mais seguro que os colchetes.
Onde usar
Aparece ao ler configuração e variáveis de ambiente, onde a ausência deve ser erro ou ter padrão explícito. Evita um nil silencioso que só estoura depois.
Em código
cfg = { porta: 3000 }
p cfg.fetch(:porta) # => 3000
p cfg.fetch(:ssl, false) # => false
p cfg.fetch(:ssl) { |k| "sem #{k}" }
# => "sem ssl"
cfg.fetch(:user) # => KeyErrorExemplos
Use fetch so a missing key fails loudly.
Use fetch para que uma chave ausente falhe alto.
Fetch takes a default value as its second argument.
O fetch aceita um valor padrão como segundo argumento.
Cuidado
Não o confunda com [], que devolve nil sem avisar; fetch sem padrão lança KeyError para chave ausente.