Mutable borrow in loop [duplicate] 的问题解决方案

原创
2020/06/27 17:33
阅读数 32

关于 Bowrrow check 的疑问,在 stackoverflow 里看到一个问题:

https://stackoverflow.com/questions/46393890/mutable-borrow-in-loop

自己改了下代码,通过了,不过问题已经关闭了,记录下。

struct Test<'a> {
    a: &'a str,
}

impl<'b, 'a: 'b> Test<'b> {
    pub fn new() -> Self {
        Test { a: &mut "test" }
    }

    pub fn dostuff(&mut self) {
        self.a = "test";
        println!("self.a: {}", self.a);
    }

    pub fn fixme(&mut self) {
        let mut i = 0;
        while i < 10 {
            self.dostuff();
            self.dostuff();
            Test::dostuff(self);
            Test::dostuff(self);
            i += 1;
        }
    }
}

fn main() {
    let mut test = Test::new();
    test.fixme();
}
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部