2
我想執行一項非常簡單的任務,但我無法設法停止編譯器的抱怨。索引字符串
fn transform(s: String) -> String {
let bytes = s.as_bytes();
format!("{}/{}", bytes[0..2], bytes[2..4])
}
[u8]
在編譯時沒有恆定的大小。
使這項操作按預期工作的一些提示?
我想執行一項非常簡單的任務,但我無法設法停止編譯器的抱怨。索引字符串
fn transform(s: String) -> String {
let bytes = s.as_bytes();
format!("{}/{}", bytes[0..2], bytes[2..4])
}
[u8]
在編譯時沒有恆定的大小。
使這項操作按預期工作的一些提示?
確實,編譯時不知道[u8]
的大小。然而,&[u8]
的大小在編譯時是已知的,因爲它只是一個指針加上表示序列長度的usize
。
format!("{:?}/{:?}", &bytes[0..2], &bytes[2..4])
鏽字符串爲UTF-8,所以以這種方式字符串處理通常是一個壞主意,因爲一個單一的Unicode字符可以由多個字節組成。
該死的thx。從高級語言中發佈會讓我覺得很聰明。 –
隨時提及任何你想澄清的東西:) – aochagavia