Guardando sia i documenti che il codice, sembra che str
sia un tipo primitivo, mentre String
è un struct { Vec<u8> }
. Ora, come str
è quello di un [u8]
ciò String
è quello di un Vec<u8>
, non str
avrebbe potuto essere definito comePerché `str` è un tipo primitivo?
struct str { slice: [u8]; }
simile a come AsciiStr è definito? Perché era/è (ancora?) Definito primitivo?
Ah, pensavo che fosse perché la soluzione corrente era abbastanza buona. Comunque sembrava un po 'fuori posto, in quanto in molti posti il linguaggio veniva ridotto spostando i costrutti in std, ecco perché lo chiedevo. – llogiq
Vedere https://github.com/rust-lang/rust/issues/19036 e https://github.com/rust-lang/rust/pull/19612 –
stringhe letterali * e * corrispondenza modello! – bluss