< 返回版块

xzzy 发表于 2023-01-30 17:25

Tags:String,Vec

如何将Vec转换为String? 例如:

enum NVType {
    Byte(u8),
    String(String, usize),
    List(Vec<NVType>),
}
//如何将 NVType::List(Vec<NVType::Byte(0)>) 转化为 String 类型

rust小白提问,请见谅!

评论区

写评论
苦瓜小仔 2023-01-30 20:11
impl std::fmt::Display for NVType {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            NVType::Byte(b) => write!(f, "{}", *b as char),
            NVType::String(s, _) => write!(f, "{s}"),
            NVType::List(v) => v.iter().try_for_each(|t| t.fmt(f)),
        }
    }
}

使用 .to_string() 获取 String,例子

作者 xzzy 2023-01-30 20:11

可以的!

--
👇
Borber: playground

我乱写的, 抛砖引玉

Borber 2023-01-30 19:16

playground

我乱写的, 抛砖引玉

作者 xzzy 2023-01-30 18:41

似乎行不通:mismatched types expected struct Vec<u8> found reference Vec<NVType>

--
👇
Mike Tang: vec 可用from_utf8系方法

Mike Tang 2023-01-30 18:22

vec 可用from_utf8系方法

1 共 5 条评论, 1 页