Rust 的 str
原始类型上的 parse
方法的签名是
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 can parse any type that implements the FromStr trait
为什么没有 trait bound?
最佳答案
它确实使用特征边界,但是边界是使用 where 子句指定的。 Look closer :
pub fn parse<F>(&self) -> Result<F, <F as FromStr>::Err> where F: FromStr,
关于rust - 为什么 std::str::parse 的签名不使用特征绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316305/