Immutabilità è l'incapacità di modificare i dati dopo che sono stati creati. Le modifiche vengono invece apportate copiando i dati. Una proprietà dei dati immutabili è che è * referenzialmente trasparente *.
Dalla panoramica del framework delle collezioni : Le raccolte che non supportano le operazioni di modifica (come add, removee clear) vengono definite non modificabili . Le raccolte che non sono modificabili sono modificabili . Le raccolte che garantiscono inoltre che nessun cambiamento Collectionnell'oggetto sarà visibile sono indicate come immutabili . …
Ho questa funzione API: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) Non mi piace Perché l'ordine dei parametri diventa inutilmente significativo. Diventa più difficile aggiungere nuovi campi. È più difficile vedere cosa succede. È più difficile refactoring del metodo in …
Esiste un'alternativa immutabile agli array primitivi in Java? Realizzare un array primitivo finalnon impedisce in realtà di fare qualcosa del genere final int[] array = new int[] {0, 1, 2, 3}; array[0] = 42; Voglio che gli elementi dell'array siano immutabili.
Un set congelato è un frozenset. Un elenco congelato potrebbe essere una tupla. Cosa sarebbe un dict ghiacciato? Un dict immutabile e sfuggente. Immagino che potrebbe essere qualcosa di simile collections.namedtuple, ma è più simile a un dict con tasti congelati (un dict mezzo congelato). No? A "frozendict" dovrebbe essere …
Sto usando le proprietà implementate automaticamente. Immagino che il modo più veloce per risolvere il problema sia quello di dichiarare la mia variabile di supporto? public Point Origin { get; set; } Origin.X = 10; // fails with CS1612 Messaggio di errore: impossibile modificare il valore restituito di "espressione" perché …
Sto usando Redux. Nel mio riduttore sto cercando di rimuovere una proprietà da un oggetto come questo: const state = { a: '1', b: '2', c: { x: '42', y: '43' }, } E voglio avere qualcosa del genere senza dover mutare lo stato originale: const newState = { a: …
Sto ricostruendo un vecchio progetto Java in Javascript e mi sono reso conto che non esiste un buon modo per fare enumerazioni in JS. Il meglio che posso inventare è: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); La constmantiene Colorsdalla riassegnazione e congela impedisce mutando …
Recentemente ho imparato a conoscere la programmazione funzionale (in particolare Haskell, ma ho anche seguito tutorial su Lisp ed Erlang). Mentre ho trovato i concetti molto illuminanti, non vedo ancora il lato pratico del concetto "senza effetti collaterali". Quali sono i vantaggi pratici di esso? Sto cercando di pensare nella …
Come posso gestire questo errore senza creare una variabile aggiuntiva? func reduceToZero(x:Int) -> Int { while (x != 0) { x = x-1 // ERROR: cannot assign to 'let' value 'x' } return x } Non voglio creare una variabile aggiuntiva solo per memorizzare il valore di x. È anche …
Mi sembra di avere problemi a inserire i dati in un array di stato. Sto cercando di ottenerlo in questo modo: this.setState({ myArray: this.state.myArray.push('new value') }) Ma credo che questo sia un modo errato e causi problemi con la mutabilità?
Dalla documentazione di Java 1.6 Collection Framework : Collezioni che non supportano alcuna operazione di modifica (quali add, removee clear) sono indicati come immodificabile . [...] Le collezioni che garantiscono inoltre che nessun cambiamento nell'oggetto Collection sarà mai visibile sono indicate come immutabili . Il secondo criterio mi confonde un …
Sto lavorando alla creazione di una classe immutabile. Ho contrassegnato tutte le proprietà come di sola lettura. Ho un elenco di elementi nella classe. Sebbene se la proprietà è di sola lettura, l'elenco può essere modificato. L'esposizione dell'IEnumerable dell'elenco lo rende immutabile. Volevo sapere quali sono le regole di base …
La mia comprensione era che le stringhe Python sono immutabili. Ho provato il seguente codice: a = "Dog" b = "eats" c = "treats" print a, b, c # Dog eats treats print a + " " + b + " " + c # Dog eats treats print a …
Ho riscontrato un problema in cui devo memorizzare i valori iniziali di un oggetto moment, ma ho qualche problema a impedire che la mia variabile cambi insieme all'oggetto originale. Sfortunatamente Object.freeze () non funziona, perché moment.js restituisce un errore "Data non valida" quando provo a formattarlo.
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.