【发布时间】:2019-04-15 14:40:35
【问题描述】:
我有一个 ASCII 字符串切片,当被视为字节时,我需要计算所有字符的总和。
let word = "Hello, World";
let sum = word.as_bytes().iter().sum::<u8>();
我需要指定 sum 的类型,否则 Rust 将无法编译。问题是u8是一个太小的类型,如果和溢出程序会死机。
我想避免这种情况,但我找不到一种方法来指定更大的类型,例如 u16 或 u32,例如,在使用 sum() 时。
我可能会尝试使用fold(),但我想知道是否可以通过指定其他类型来使用sum()。
let sum = word.as_bytes().iter().fold(0u32, |acc, x| acc + *x as u32);
【问题讨论】:
标签: string rust sum byte slice