gpt4 book ai didi

string - 我应该实现 Display 还是 ToString 来将类型呈现为字符串?

转载 作者:行者123 更新时间:2023-11-29 07:44:33 33 4
gpt4 key购买 nike

我有一个 Foo 类型,我希望能够将其作为字符串显示给最终用户,通过实现 Display 来做到这一点是否更符合习惯?或者通过实现 ToString

如果 Display 是要走的路,我将如何最终得到一个 String?我怀疑我需要使用 write!,但我不确定如何使用。

最佳答案

你不应该实现 ToString手动。 ToString 特性已经为所有实现了 fmt::Display 的类型实现了:

impl<T> ToString for T
where
T: Display + ?Sized,
{ /* ... */ }

如果您实现Displayto_string() 将自动在您的类型上可用。

fmt::Display旨在为那些应该显示给用户的少数类型手动实现,而 fmt::Debug预计将以最能很好地表示其内部结构的方式为所有类型实现(对于大多数类型,这意味着它们应该具有#[derive(Debug)]他们)。

为了获得 fmt::Debug 输出的字符串表示,您需要使用 format!("{:?}", value),与 {:?} 是实现 fmt::Debug 的类型的占位符。

RFC 565定义何时使用 fmt::Debugfmt::Display 的指南。

关于string - 我应该实现 Display 还是 ToString 来将类型呈现为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27769681/

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