let hello1 = "Hello, world!";
let hello2 = "Hello, world!".to_string();
let hello3 = String::from("Hello, world!");
risposta
let hello1 = "Hello, world!";
Questo crea una fetta stringa (&str
). In particolare, un &'static str
, una stringa di sezione che vive per l'intera durata del programma. Nessuna memoria heap è allocata; i dati per la stringa risiedono all'interno del file binario del programma stesso.
let hello2 = "Hello, world!".to_string();
Questo utilizza la macchina per formattare qualsiasi tipo che implementa Display
, creando, stringa allocata proprietà (String
). Nelle versioni di Rust precedenti alla 1.9.0 (in particolare a causa di this commit), questo è più lento della conversione diretta utilizzando String::from
. Nella versione 1.9.0 e successive, chiamare .to_string()
su una stringa letterale ha la stessa velocità di String::from
.
let hello3 = String::from("Hello, world!");
Questo converte una fetta stringa in un, stringa allocata proprietà (String
) in modo efficiente.
let hello4 = "hello, world!".to_owned();
Lo stesso di String::from
.
Consulta anche: