Rust 获取错误“;特性'std::ops::FnMut<;(char,)>;`未为“std::string::string`”实现;对于简单的类型不匹配
错误:Rust 获取错误“;特性'std::ops::FnMut<;(char,)>;`未为“std::string::string`”实现;对于简单的类型不匹配,rust,Rust,错误: let mystring = format!("the quick brown {}", "fox..."); assert!(mystring.ends_with(mystring)); 错误更容易理解: let mystring = String::from_str("The quick brown fox..."); assert!(mystring.ends_with(mystring)); 错误[E0599]:找不到类型名为`ends_with`的方法 `s
let mystring = format!("the quick brown {}", "fox...");
assert!(mystring.ends_with(mystring));
错误更容易理解:
let mystring = String::from_str("The quick brown fox...");
assert!(mystring.ends_with(mystring));
错误[E0599]:找不到类型名为`ends_with`的方法
`std::result::result`
在当前范围内
这个错误还有很多:
error[E0599]: no method named `ends_with` found for type
`std::result::Result<std::string::String, std::string::ParseError>`
in the current scope
因此,如果您进行更改,您的代码段可以正常工作
impl<'a, 'b> Pattern<'a> for &'b String
到
这也是有意义的,因为否则您会试图将mystring
的所有权传递给带有函数的ends\u,这似乎是不对的
至于您看到的特定错误,模式的特征定义还包括
assert!(mystring.ends_with(&mystring));
impl for F
哪里
F:FnMut(char)->bool,
这通常表示函数接受字符并返回布尔计数作为模式,导致消息说String
与该特征实现不匹配
impl<'a, 'b> Pattern<'a> for &'b String
assert!(mystring.ends_with(mystring));
assert!(mystring.ends_with(&mystring));
impl<'a, F> Pattern<'a> for F
where
F: FnMut(char) -> bool,