Se si guarda nel official Rust doc, si vede che il tratto Fn
è derivato da FnMut
, o, per implementare Fn
, è necessario implementare FnMut
(e dopo che FnOnce
dal FnMut
deriva anche da esso).Perché Fn deriva da FnMut (che deriva da FnOnce)?
Perché è così? Semplicemente non riesco a capirlo. È perché è possibile chiamare ogni Fn
come FnOnce
o FnMut
?
Questo è quello che sospettavo ... – Kapichu
ho deciso di usare 'IndexMut' invece di' FnMut' per il mio compito, però, credo di aver trovato un errore? Causa, per le funzioni, c'è ('FnOnce'), (' FnOnce', 'FnMut'), (' FnOnce', 'FnMut',' Fn'). Bene, capito. Ma per 'Index'es è: (' Index'), ('Index',' IndexMut'). Questo è il contrario e un errore credo, dal momento che, quando implemento la versione mutevole, devo anche avere la versione immutabile, che non funzionerà ... (Dovrei aprire una nuova domanda per questo o questo commento è sufficiente?) – Kapichu
@Kapichu mi sembra una domanda diversa. Nello specifico perché voglio chiederti cosa intendi con "che non funzionerà". Scommetto che garantisce uno snippet di codice, il che significa che probabilmente è un'altra domanda. Altre domande sono buone - risultati di ricerca a grana più fine per le persone future. – Shepmaster