比较 RefCell<T> 中包含的值
Comparing value enclosed in RefCell<T>
我有一个字段定义如下的结构:
log_str: RefCell<String>
我对 borrow_mut()
进行了多次呼叫,以便在场上呼叫 push_str(.)
。最后,我使用以下方法评估它的价值:
assert_eq!(os.log_str.borrow(), "<expected value>");
尽管如此,断言行引发了编译时错误消息:
error[E0369]: binary operation ==
cannot be applied to type std::cell::Ref<'_, std::string::String>
我明白为什么会出现错误,因为编译器甚至提示:
an implementation of std::cmp::PartialEq
might be missing for std::cell::Ref<'_, std::string::String>
我的问题是:我应该如何比较 RefCell<T>
中包含的值(通常在这种情况下,将包含的字符串与预期值进行比较)。
谢谢!
您想取消引用 borrow
ed 值:
assert_eq!(*os.log_str.borrow(), "<expected value>");
我有一个字段定义如下的结构:
log_str: RefCell<String>
我对 borrow_mut()
进行了多次呼叫,以便在场上呼叫 push_str(.)
。最后,我使用以下方法评估它的价值:
assert_eq!(os.log_str.borrow(), "<expected value>");
尽管如此,断言行引发了编译时错误消息:
error[E0369]: binary operation
==
cannot be applied to typestd::cell::Ref<'_, std::string::String>
我明白为什么会出现错误,因为编译器甚至提示:
an implementation of
std::cmp::PartialEq
might be missing forstd::cell::Ref<'_, std::string::String>
我的问题是:我应该如何比较 RefCell<T>
中包含的值(通常在这种情况下,将包含的字符串与预期值进行比较)。
谢谢!
您想取消引用 borrow
ed 值:
assert_eq!(*os.log_str.borrow(), "<expected value>");