struct Version {
    major: u32,
    minor: u32,
}

impl From<&str> for Version {
    fn from(s: &str) -> Self {
        let parts: Vec<_> = s.split('.').collect();
        let major = parts[0].parse().unwrap();
        let minor = parts[1].parse().unwrap();
        Version { major, minor }
    }
}

在这个例子里面,&str表示转换源类型,即我们要将一个&str类型的值转换源类型,即我们要将一个&str类型的值转换为Version类型实现了From<&str> trait,意味着我们可以将一个&str类型的值转换为Version类型。
我们在使用的时候应该这样使用:
let version: Version = "1.2".into();


子栖
32 声望1 粉丝

半路出家的废物女程序员