学习 Rust 的过程真辛苦,有些错误真的很违反常识,比如我有一个函数
enum CreateError; hello() -> Result<String,Error> {}
然后调用的时候使用了 unwrap()
hello.unwrap();
但是一直提示错误
method not found in `std::result::Result<std::string::String, CreateError>
问题出在哪里呢?CreateError
没有注解 fmt::Debug
接口
这个问题我找了3个小时了,才发现问题出在这里,惭愧啊
解决方案如下
#[derive(Debug)] enum CreateError; hello() -> Result<String,Error> {}
根本原因是 Result::unwrap()
的 E
接口的定义,E
要实现 Debug
impl<T, E> Result<T, E> where E: Debug
目前尚无回复