< 返回版块

ehlxr 发表于 2019-08-12 18:19

想问下一,实现 ToString trait 的 to_string 方法,为啥前面要加个 default 关键字?作用是啥

#[stable(feature = "rust1", since = "1.0.0")]
impl<T: fmt::Display + ?Sized> ToString for T {
    #[inline]
    default fn to_string(&self) -> String {
        use fmt::Write;
        let mut buf = String::new();
        buf.write_fmt(format_args!("{}", self))
           .expect("a Display implementation returned an error unexpectedly");
        buf.shrink_to_fit();
        buf
    }
}
``

评论区

写评论
Mike Tang 2019-08-13 12:05

长见识 了。

作者 ehlxr 2019-08-13 09:21

谢谢,就是这个东西。

对以下内容的回复:

作者 ehlxr 2019-08-13 09:20
➜ rustup show   
Default host: x86_64-apple-darwin

stable-x86_64-apple-darwin (default)
rustc 1.36.0 (a53f9df32 2019-07-03)

我用的是这个版本,更新也没有最新的版本了。

对以下内容的回复:

Mike Tang 2019-08-12 22:38

过时了吧,现在没有这个东西,不要看过时的文档。

xjkdev 2019-08-12 19:44

参见:https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md#the-default-keyword

表示允许特化。

1 共 5 条评论, 1 页