2016-05-10 16 views
7
let hello1 = "Hello, world!"; 
let hello2 = "Hello, world!".to_string(); 
let hello3 = String::from("Hello, world!"); 

risposta

10
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: