gpt4 book ai didi

rust - 将 Ref 的内容与 PartialEq 进行比较

转载 作者:行者123 更新时间:2023-11-29 08:24:13 26 4
gpt4 key购买 nike

假设我有两个 Ref<T> T 所在的对象工具 PartialEq , 我该如何比较它们?

以下代码无法编译:

use std::cell::RefCell;

fn main() {
let a = RefCell::new("abcdef".to_string()).borrow();
let b = RefCell::new("abcdef".to_string()).borrow();
println!("{}", a == b);
}

并导致此错误:

error[E0369]: binary operation `==` cannot be applied to type `std::cell::Ref<'_, std::string::String>`
--> src/main.rs:6:22
|
6 | println!("{}", a == b);
| - ^^ - std::cell::Ref<'_, std::string::String>
| |
| std::cell::Ref<'_, std::string::String>
|
= note: an implementation of `std::cmp::PartialEq` might be missing for `std::cell::Ref<'_, std::string::String>`

最佳答案

std::cell::Ref工具 std::ops::Deref ,您需要使用它来使用 * 运算符获取值本身。使用您的代码段,您想要做

use std::cell::RefCell;

fn main() {
let a = RefCell::new("abcdef".to_string());
let b = RefCell::new("abcdef".to_string());

println!("{}", *a.borrow() == *b.borrow());
}

( Playground Link )

关于rust - 将 Ref 的内容与 PartialEq 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com