小编m-b*_*bat的帖子

为什么要定义具有单元类型的单个私有字段的结构?

为什么ParseBoolError会有_priv字段:

pub struct ParseBoolError {
    _priv: (),
}
Run Code Online (Sandbox Code Playgroud)

我不认为该_priv领域被使用。

rust

38
推荐指数
1
解决办法
1546
查看次数

为什么 Into<String> 可以接受 String 类型?

struct Person {
    name: String,
}

impl Person {
    fn new<S: Into<String>>(name: S) -> Person {
        Person { name: name.into() }
    }
}

fn main() {
    let person = Person::new("test");
    let person = Person::new("test".to_string());
}
Run Code Online (Sandbox Code Playgroud)

&strInto<String>特质,所以我知道我可以Person::new("test")正确调用。

但是,我认为Person::new("test".to_string())失败是因为String没有From<String> for String,所以Into<String>不会自动导出。
为什么我可以打电话Person::new("test".to_string())

另外,我也可以调用以下代码。

let test: String = String::from("test".to_string());
Run Code Online (Sandbox Code Playgroud)

在上述情况下,我无法理解String::from("test".to_string())即使String没有也可以成功调用From<String> for String

rust

5
推荐指数
1
解决办法
2741
查看次数

标签 统计

rust ×2