小编bum*_*ack的帖子

如何使用生命周期来解决"引用必须对静态生命周期有效"

我是Rust初学者,我无法获得以下代码进行编译.我想要的是在一个向量中存储几个特征,每个特征也应该具有对借来的变量的只读访问权限.

我猜我必须使用"Lifetime bounds" - 就像在这个帖子中讨论的那样- 因为如果我注释掉第60-68行,那么代码编译得很好.

有人可以解释如何使用"生命界限" - 如果这是解决问题的方法 - 或者这不是Rust解决问题的方法吗?如果有更好的方法来实现我想要做的事情,我很高兴改变我对问题的处理方法.

不编译的代码在这里和生锈的操场上.

struct PixelImageSimple<'a> {
    pixels: &'a Vec<i32>,
    width: i32,
    height: i32,
}

trait ImageOperation<'a> {
    fn execute_op(&self);
}

struct ImageOperationSharpen<'a> {
    val: i32,
    bitmapdata: &'a PixelImageSimple<'a>
}

impl<'a> ImageOperation<'a> for ImageOperationSharpen<'a> {
    fn execute_op(&self) {
        println!("ImageOperationSharpen - val = {}, width = {}, height = {}, pixels = {:?}",
            &self.val, &self.bitmapdata.width, &self.bitmapdata.height,&self.bitmapdata.pixels);
    }
}

struct ImageOperationRotate<'a> {
    angle: f64,
    bitmapdata: &'a PixelImageSimple<'a>
}

impl<'a> ImageOperation<'a> …
Run Code Online (Sandbox Code Playgroud)

lifetime rust

5
推荐指数
2
解决办法
3895
查看次数

标签 统计

lifetime ×1

rust ×1