主要观点:在 Rust 中有时需将字符串转换为特定类型,标准库的[FromStr] trait 有用但有缺点,即接收&str而非 String 会导致浪费克隆。为解决此问题引入新 trait FromString,可将 String 转换为目标类型等。
关键信息:
- [FromStr]可将&str转换为兼容类型,转换失败返回错误值但不一定是[Error]类型。
- FromString 的定义及实现方式,包括对不同类型的转换处理,如利用 transmute_copy 避免克隆等。
- 提供了方便调用 FromString 的辅助函数 from_string。
- 给出了使用 FromString 的示例。
重要细节: - 定义了 Error 类型别名,用于统一错误处理。
- 在实现 FromString 时,根据输入和输出类型的不同进行不同处理,对于类型相同的情况使用 transmute_copy。
- 提到 nightly-only 的 transmute_unchecked 及理想的 specialization 但它们不稳定。
- 感谢 David Tolnay 指出可使用 transmute_copy,以及 TypeId::of 调用要求 V 为'static 及可使用 typeid crate 中的 ConstTypeId。还标记了[rust]标签。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。