正如问题所述,我如何实现这一点?

如果我有这样的代码:

let a = "29";
for c in a.chars() {
    println!("{}", c as u32);
}

对于代码2,我得到的是unicode点:

  • 50
  • 57

我想把这些字符解析成实际的数字.

推荐答案

char::to_digit(radix)就够了.radix表示"基数",即10表示十进制,16表示十六进制,等等:

let a = "29";
for c in a.chars() {
    println!("{:?}", c.to_digit(10));
}

它返回一个Option,所以你需要将其设置为unwrap(),或者更好:expect("that's no number!").您可以在the appropriate chapter of the Rust book中阅读有关正确错误处理的更多信息.

Rust相关问答推荐

什么样的 struct 可以避免使用RefCell?

trait声明中的生命周期参数

integer cast as pointer是什么意思

闭包不会发送,即使它只捕获发送变量

使用极点数据帧时,找不到枚举结果的方法lazy()

如何模拟/创建ReqData以测试Actix Web请求处理程序?

如何使用RefCell::JOYMOMTborrow 对 struct 不同字段的可变引用

如何在不调用Collect()的情况下为新型vec实现IntoIterator?

如何重命名 clap_derive 中的子命令占位符?

Rust Axum 框架 - 解包安全吗?

如何以与平台无关的方式将OsString转换为utf-8编码的字符串?

Rust 如何返回大类型(优化前)?

go 重并堆积MPSC通道消息

实现泛型的 Trait 方法中的文字

rust tokio::spawn 在 mutexguard 之后等待

你能告诉我如何在 Rust 中使用定时器吗?

从函数返回 u32 的数组/切片

在 Rust 中获得准确时间的正确方法?

您如何使用枚举反序列化字符串,其中任何其他值反序列化为新类型变体同时保留字符串?

如何用另一个变量向量置换 rust simd 向量?