我是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)