Ein neues Rustacean wie ich mit Jonglieren diese Art kämpft: String
, &str
, Vec<u8>
, &[u8]
.Idiomatic Transformationen für String & str, Vec <u8> und & [U8]
In der Zeit hoffe ich, eine Offenbarung zu haben und plötzlich zu bekommen, warum einige Bibliotheksanrufe das eine oder andere benutzen. Bis dahin brauche ich Hilfe, um jeden idiomatischen Übergang abzubilden.
Unter diesen Typen:
let st: &str = ...;
let s: String = ...;
let u: &[u8] = ...;
let v: Vec<u8> = ...;
Ich glaube, ich diese herausgefunden haben, aber sind sie idiomatische?
&str -> String String::from(st)
&str -> &[u8] st.as_bytes()
String -> &str s.as_str()
&[u8] -> &str str::from_utf8(u)
Vec<u8> -> String String::from_utf8(v)
Schließlich möchte ich eine vollständige Tabelle der Übergänge für diese Typen:
&str -> String
&str -> &[u8]
&str -> Vec<u8>
String -> &str
String -> &[u8]
String -> Vec<u8>
&[u8] -> &str
&[u8] -> String
&[u8] -> Vec<u8>
Vec<u8> -> &str
Vec<u8> -> String
Vec<u8> -> &[u8]