我有以下泛型函数,现在想要将任何给定类型转换为字符串。
fn write_row<T>(row: T) {
let s: String = row.to_string();
}
但这显然不起作用,因为没有为类型T实现to_string。
所以我的问题是我如何检查参数的类型然后在需要时应用to_string,如何告诉编译器我现在知道变量是定义的类型?
答案 0 :(得分:2)
您可以告诉编译器T
必须实现ToString
这样的特性:
use std::string::ToString;
fn write_row<T: ToString>(row: T) {
let s: String = row.to_string();
}