gpt4 book ai didi

reference - 有什么方法可以避免结构内部的 mut not mut 引用重复代码?

转载 作者:行者123 更新时间:2023-11-29 08:27:17 25 4
gpt4 key购买 nike

<分区>

这里是我想要实现的:

trait Foo {
fn readonly(&self) -> i32;
fn modify(&mut self, val: i32);
}

struct FooWrapper<'a> {
foo: &'a Foo,
}

impl<'a> FooWrapper<'a> {
fn readonly(&self) -> i32 {
self.foo.readonly()
}

fn modify(&mut self, val: i32) {
self.foo.modify(val);//!!!
}
}

作为输入,我得到了 &Foo&mut Foo,例如:fn func(a: &Foo, b: &mut Foo).

然后我想将它们包装在 FooWraper 中,并使用它的方法与 Foo 一起工作。

但如您所见,编译器不允许使用 //!!! 标记的代码。

无需重复代码即可解决此问题的任何方法,例如:

struct FooWrapper<'a> {
foo: &'a Foo,
}
struct FooWrapperMut<'a> {
foo: &'a mut Foo,
}
impl<'a> FooWrapper<'a>..
impl<'a> FooWrapperMut<'a>..

?

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