Vorrei chiedere umilmente ...var o ref/atom/agent per valori costanti?
Cosa, "var o ref/atom/agent per valori costanti?", Chiedo? Certo, io uso vars per i valori costanti.
Ma mi sono sempre chiesto quale dei due dovrei usare quando i valori si comportano come costanti ma dovrebbero essere assegnati in fase di esecuzione, piuttosto che in fase di compilazione (quando i codici vengono letti).
Ad esempio, pensare alcune proprietà java scritte nel file di configurazione dell'utente. Dovrebbero essere assegnati in fase di esecuzione perché i dati non sono nei codici. Ma dovrebbero anche essere definiti prima che i dati vengano letti, poiché gli altri codici li riferiscono.
In questo caso,
quando si usa 'di var ?:
- io definisco' var di, o semplicemente dichiaro 'var di (quando va bene).
- E poi ridefinisco quelle 'var' di nuovo con le funzioni che leggono i file di opzioni.
- Ma è terribile sovrascrivere 'var's, o sembra strano definire' le funzioni interne di var.
Quando posso utilizzare ref/atom/agente ?:
- assegno ref/atom/agenti di 'var di.
- Quindi aggiorno tali riferimenti/atom/agenti per funzioni che leggono i file di opzioni.
- Ma dal momento che i valori sono utilizzati in tutto il programma, quindi mi preoccupo i loro costi.
- ... e l'utilizzo di troppi @ macro è alquanto fastidioso.
Non so cosa dovrei usare.
Che cosa usi in questi casi?
'var's? 'Ref/atom/agente? o anche 'ritardo?
Grazie in anticipo.
Perché non definire la var sincrono alla prima linea quando si avvia il programma? Così in questo caso non hai bisogno di sovrascrivere quella var da qualche altra parte, dall'altra parte se sei fastidioso scrivendo '@ My-var' ovunque appena possibile definire una funzione wrapper che restituisce' @ my-var' – hsestupin
Grazie per la risposta. Come definisco la mia var in modo sincrono? Non credo di capire cosa intendi. Pensavo che i vars non fossero qualcosa di sincrono. Intendevi assegnare i ref a vars e resettare (aggiornare) i ref per l'inizializzazione? –
Voglio dire al vostro namespace 'ns.with-const' con quella costante prima riga di codice sarebbe' (DEF my-const (alcuni-calcoli)) '. Quindi finché questa espressione non sta valutando tutti gli spazi dei nomi che cercano di usare o richiedere 'ns.with-const' non inizieranno a valutare il proprio codice. E non ci sono condizioni di gara con questo modello. Quando il tuo const sarà calcolato, diventa definito e tutto funziona perfettamente. Spero che questa spiegazione abbia senso – hsestupin