2015-05-25 22 views
5

Qual è la differenza tra ^floats e #^floats nelle annotazioni di tipo Clojure?Clojure^float vs. #^float?

In una richiesta di pull, qualcuno ha suggerito io uso questa annotazione:

(.put #^floats init-fft-array) 

che ha fatto il trucco, ma non so il motivo per cui il '#' è lì. Ho trovato questo ha funzionato anche:

(.put ^floats init-fft-array) 

C'è qualche differenza?

risposta

10

#^floats è una sintassi legacy, con le versioni più recenti di Clojure ^floats è preferibile.

+0

Questo spiega perché non riesco a trovare alcuna menzione della combinazione '# ^' in nessuna parte della [documentazione sui caratteri macro] (http://clojure.org/reader#The%20Reader--Macro%20characters). – DaoWen

+0

Accetterò la risposta @ noisesmith, ma se qualcuno ha un link storico da mostrare quando la sintassi legacy è cambiata, sarebbe bello vederla. –

+0

@RogerAllen - Mi stavo chiedendo la stessa cosa, quindi ho fatto qualche ricerca. Stavo postando una risposta qui, ma era troppo lungo per un commento, e non aveva senso come risposta qui (dato che in realtà è una nuova domanda). Ho deciso di rispondere autonomamente alla nuova domanda qui: http://stackoverflow.com/questions/30445465/ – DaoWen