Rust parse
基元类型上str
方法的签名是
pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err>
为什么不如下?
pub fn parse<F: FromStr>(&self) -> Result<F, F::Err>
我认为原始演员可能会确保Err
解析为FromStr::Err
,而不是SomeOtherTrait::Err
。
仍然,考虑到parse
文档中的以下行...
parse可以解析实现FromStr特征的任何类型
为什么没有特质限制?
答案 0 :(得分:1)
table1(area, name)
表示来自<F as FromStr>::Err
的{{1}}实施的相关Err
类型。
为什么不如下?
F
因为FromStr
可以实现许多不同的特征,所有特征都可能具有不同的关联pub fn parse<F: FromStr>(&self) -> Result<F, F::Err>
类型。此语法可确保它获得与F
的{{1}}实现特定关联的类型。