Questo è per lo 0,6 attuale tronco di ruggine, non è sicuro del commit esatto.Come si trasforma & str in ~ str in Rust?
Diciamo che voglio per ciascuna più stringhe, e la mia chiusura prende un argomento puntatore a stringa preso in prestito (& str). Voglio che la mia chiusura aggiunga il suo argomento a un vettore di proprietà di stringhe di proprietà ~ [~ str] da restituire. La mia comprensione di Rust è debole, ma penso che le stringhe siano un caso speciale in cui non puoi dereferenziarle con * giusto? Come faccio a ottenere le stringhe da & str nel metodo push del vettore che accetta un ~ str?
Ecco alcuni codice che non viene compilato
fn read_all_lines() -> ~[~str] {
let mut result = ~[];
let reader = io::stdin();
let util = @reader as @io::ReaderUtil;
for util.each_line |line| {
result.push(line);
}
result
}
Esso non viene compilato perché è inferire il tipo di risultato di essere [& str] dato che è quello che sto spingendo su di esso. Per non parlare della sua vita sarà sbagliata dal momento che aggiungo una variabile a vita breve ad esso.
Mi rendo conto che potrei usare il metodo read_line() di ReaderUtil che restituisce un ~ str. Ma questo è solo un esempio.
Quindi, come posso ottenere una stringa di proprietà da una stringa in prestito? O sono totalmente frainteso.
Questo è meno rilevante la società dato che la ruggine è a 1. X. (Ruggine 1.X usa 'String' e' & str', non '~ str') Quindi, sarebbe utile etichettarlo come pre-Rust 1.0. La mia speranza è che la rilevanza del motore di ricerca possa essere adeguata di conseguenza. –
Potrei essere fuori linea qui, ma ho votato per chiudere questa domanda in quanto non si applica alla sintassi Rust corrente, che non include ~ –