gpt4 book ai didi

rust:为 fmt 定义一个 ToStr

转载 作者:行者123 更新时间:2023-11-29 08:17:23 27 4
gpt4 key购买 nike

我希望 fmt!("%?, obj) 在我的对象上调用一个方法来格式化结果。我尝试实现 ToStrRepr 特性,但似乎都不起作用。这是我的测试代码:

pub struct Element {
name: ~str,
}

impl ToStr for Element {
pub fn to_str(&self) -> ~str {
fmt!("<%s>", self.name)
}
}

fn main() {
let e = Element{name: ~"root"};
io::println(fmt!("e: %?", e));
}

它打印:

e: {name: ~"root"}

我希望它打印:

e: <root>

我正在使用 Rust 0.6。

最佳答案

%? 是一个结构化格式化程序,这不太可能改变。

当前打印ToStr 表示的唯一方法是实际调用to_str,例如:

fn main() {
let e = Element{name: ~"root"};
println(fmt!("e: %s", e.to_str()));
}

(目前有模糊的计划和一些支持重载格式说明符的半实现(%? 除外),但编译器中还没有。)

关于rust:为 fmt 定义一个 ToStr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16747802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com