我希望编写一个通用函数,可以接受任何类型的字符串(
该函数内部需要一个
&str
/String
),以方便调用者使用。该函数内部需要一个
String
,因此如果调用者使用 String
调用函数,则我也希望避免不必要的重新分配。foo("borrowed");
foo(format!("owned"));
我知道可以使用foo<S: AsRef<str>>(s: S)
来接受引用,但是如何处理其他情况呢?
我认为可以基于ToOwned
的泛型参数可能有效(适用于&str
,并且我假设它在String
上是无操作的),但我无法弄清确切的语法。