【发布时间】:2015-10-08 03:36:02
【问题描述】:
我将离开this 文章,试图编写一个同时接受String 和&str 的函数,但我遇到了问题。我有以下功能:
pub fn new<S>(t_num: S) -> BigNum where S: Into<String> {
let t_value = t_num.into();
let t_digits = t_value.len();
BigNum { value: t_value, digits: t_digits }
}
BigNum 是一个简单的结构,但问题是当我尝试使用 &collections::string::String 调用它时出现错误:
let line = "123456".to_string()
let big = bignum::BigNum::new(&line)
main.rs:23:15: 23:34 error: the trait `core::convert::From<&collections::string::String>` is not implemented for the type `collections::string::String` [E0277]
main.rs:23 let big = bignum::BigNum::new(&line);
我的印象是 &String 将被隐式分解为 &str 不是吗?在这种情况下,Into 特征会将&str 转换为我可以使用的字符串。我做错了什么?
【问题讨论】: