Załóżmy, że mam kod:Jak poprawnie zaimplementować funkcję ToString dla struktury?
struct A {
names: Vec<String>,
}
impl ToString for A {
fn to_string(&self) -> String {
// code here
}
}
fn main() {
let a = A { names: vec![
"Victor".to_string(),
"Paul".to_string(),
]};
println!("A struct contains: [{}].", a.to_string());
}
oczekiwany wynik:
struct zawiera: [Victor Paul].
Jakie są najlepsze sposoby wdrożenia tej cechy, aby osiągnąć cel przy maksymalnym wykorzystaniu rdzy?
Próbowałem trochę dziwne 'dla każdego' i inne rzeczy, ale każdy daje mi spływu przecinek tak:
Victor, Paul
Oczywiście mogę to pop później, ale ja jestem zainteresowany językiem, więc chcę poznać najlepszą praktykę tego. To tylko przykład tego, co próbowałem, ale to nie ma znaczenia, pytam, jak zrobić to w sposób najbardziej efektywny i lepszy w rozumieniu języka Rust
.
P.S. Uczę się jeszcze Rust
.
Wszystko wygląda świetnie, ale czy powinienem dbać o zwracaną wartość 'fmt.write_str()'? Kompilator skarży się, że wynik musi być użyty i daje ostrzeżenie. –
Masz rację. Wywołanie musi być opakowane przez ['try!'] (Https: // doc.rust-lang.org/stable/std/macro.try!.html) makro. Zaktualizowałem odpowiedź. Dzięki. – malbarbo
Co myślisz o zamknięciu jako duplikat http://stackoverflow.com/q/22243527/155423? – Shepmaster