3
我有以下通用函数,现在想要将任何给定类型转换为字符串。to_string与泛型参数
fn write_row<T>(row: T) {
let s: String = row.to_string();
}
不过这显然不会工作,因为to_string没有为类型T实现
所以我的问题是如何将我检查了参数的类型,然后根据需要应用to_string哪有我告诉编译器,我现在知道变量是一个定义的类型?
我有以下通用函数,现在想要将任何给定类型转换为字符串。to_string与泛型参数
fn write_row<T>(row: T) {
let s: String = row.to_string();
}
不过这显然不会工作,因为to_string没有为类型T实现
所以我的问题是如何将我检查了参数的类型,然后根据需要应用to_string哪有我告诉编译器,我现在知道变量是一个定义的类型?
你可以告诉T
必须实现ToString
特质像这样的编译器:
use std::string::ToString;
fn write_row<T: ToString>(row: T) {
let s: String = row.to_string();
}
大,但我会做什么,如果我还想允许它们没有什么to_string方法串... – TM90
@ TM90你什么意思?如果它是一个字符串,则不需要调用'to_string' ... – squiguy
我的意思是,如果我想允许write_row方法的字符串,然后跳过to_string部分 – TM90