clojure
Macro di threading
Ricerca…
introduzione
Conosciuto anche come macro di freccia, le macro di thread convertono le chiamate di funzioni annidate in un flusso lineare di chiamate di funzione.
Thread Ultimo (- >>)
Questa macro fornisce l'output di una linea specifica come ultimo argomento della chiamata della funzione di linea successiva. Per es
(prn (str (+ 2 3)))
è uguale a
(->> 2
(+ 3)
(str)
(prn))
Prima discussione (->)
Questa macro fornisce l'output di una determinata riga come primo argomento della chiamata della funzione di linea successiva. Per es
(rename-keys (assoc {:a 1} :b 1) {:b :new-b}))
Non riesco a capire niente, giusto? Proviamo di nuovo, con ->
(-> {:a 1}
(assoc :b 1) ;;(assoc map key val)
(rename-keys {:b :new-b})) ;;(rename-keys map key-newkey-map)
Thread as (as->)
Questa è un'alternativa più flessibile al thread first o thread last. Può essere inserito ovunque nella lista dei parametri della funzione.
(as-> [1 2] x
(map #(+ 1 %) x)
(if (> (count x) 2) "Large" "Small"))
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow