Acesso a dados em maps em Clojure
get
Função padrão para busca. Se a chave não existir, retorna nil.
(def scores {"Angela" 1024})
(get scores "Angela")
;; => 1024Attention
Invocar um mapa
nilresulta em um erro deNullPointerException.(def bad-lookup-map nil) (bad-lookup-map :foo) ;; => Execution error (NullPointerException) at user/eval154 (REPL:1). null
Invocação de Maps
Mapas podem ser invocados como funções, recebendo a chave como argumento.
(def directions {:north 0 :east 1})
(directions :north)
;; => 0Valores Padrão
Tanto get quanto a invocação aceitam um parâmetro extra como valor padrão caso a chave não seja encontrada.
(get scores "Sam" 0)
;; => 0
(directions :northwest -1)
;; => -1contains? e find
contains? verifica a existência da chave, enquanto find retorna o par chave-valor completo como um vetor.
(contains? scores "Fred")
;; => true
(find scores "Angela")
;; => ["Angela" 1024]