首页 > 解决方案 > 如何在不分配字符串的情况下将 Rust 整数类型转换为其字符串表示形式?

问题描述

我有一个count: u32我需要通过一个 TCP 流作为它的 ASCII 字节表示。例如,如果值为 42,我想将字节[52, 50](ASCII 表示“42”)写入流。

我可以通过首先创建一个Stringwith 来做到这一点:

use std::io::prelude::*;

fn write_number<T: Write>(writer: &mut T, num: u32) -> std::io::Result<usize> {
    let num_as_str: String = num.to_string();
    let num_as_bytes = num_as_str.as_bytes();
    writer.write(num_as_bytes)
}

这是一种浪费的方式吗?我不认为String为此任务分配 a 是必要的。有没有更有效的实施方式write_number?我试过通过str,但str没有实现From<u32>

标签: iorusttype-conversion

解决方案


推荐阅读