如何在 Rust 中使用多参数字符串函数?



我想在 Rust 中以&self作为参数制作一个to_string()fn,并在函数中调用&self元素的引用:

//! # Messages
//!
//! Module that builds and returns messages with user and time stamps.
use time::{Tm};
/// Represents a simple text message.
pub struct SimpleMessage<'a, 'b> {
pub moment: Tm,
pub content: &'b str,
}
impl<'a, 'b> SimpleMessage<'a, 'b> {
/// Gets the elements of a Message and transforms them into a String.
pub fn to_str(&self) -> String {
let mut message_string =
String::from("{}/{}/{}-{}:{} => {}",
&self.moment.tm_mday,
&self.moment.tm_mon,
&self.moment.tm_year,
&self.moment.tm_min,
&self.moment.tm_hour,
&self.content);
return message_string;
}
}

$ cargo run返回:

error[E0061]: this function takes 1 parameter but 8 parameters were supplied
--> src/messages.rs:70:13
|
70 | /             String::from("{}/{}/{}-{}:{}, {}: {}",
71 | |                          s.moment.tm_mday,
72 | |                          s.moment.tm_mon,
73 | |                          s.moment.tm_year,
...  |
76 | |                          s.user.get_nick(),
77 | |                          s.content);
| |___________________________________^ expected 1 parameter

我真的不明白这种语法的问题,我错过了什么?

您可能打算使用format!宏:

impl<'b> SimpleMessage<'b> {
/// Gets the elements of a Message and transforms them into a String.
pub fn to_str(&self) -> String {
let message_string =
format!("{}/{}/{}-{}:{} => {}",
&self.moment.tm_mday,
&self.moment.tm_mon,
&self.moment.tm_year,
&self.moment.tm_min,
&self.moment.tm_hour,
&self.content);
return message_string;
}
}

String::from来自From特征,它定义了一个接受单个参数的from方法(因此在错误消息中"此函数采用 1 个参数"(。

format!已经产生了String,所以不需要转换。

相关内容

  • 没有找到相关文章

最新更新