用vec生锈!不按预期工作

时间:2016-02-29 06:45:35

标签: reference scope rust lifetime

我爱生锈,我想掌握它,但我遇到了困难。

当然是它的生命周期。我仍然很难理解它。我在这里给你看一些代码。在那里你可以看到一个包含借来的数组的结构。

为该画布创建CTOR时,我无法以正确的方式声明生命周期'a

struct Canvas<'a>{ 
  width: i32,
  height: i32, 
  array: &'a Vec<char>
}

impl <'a>Canvas<'a>{
  fn new(width: i32, height: i32) -> Canvas<'a>{
    Canvas {
      width: width,
      height: height,
      array: &vec!['x'; (width*height) as usize]
  }
}

错误说:

  

引用必须对于生命周期'a有效,如9:49中的块所定义

我理解这里的问题 - 但找不到任何正确的例子。我几乎把'a放在每个可能的位置上:D

修改

有人提到我不应该将数组作为引用放入我的结构中 - 它应该怎么样?

0 个答案:

没有答案