小编Nou*_*tes的帖子

Rust切片所有权超出了其范围

我正在疯狂地试图围绕Rust生命周期问题.运行以下代码时:

use std::fs::File;
use std::io::Read;
use std::clone::Clone;

const BUFSIZE : usize = 4096;

struct LexBuf<T: Read> {
    f: T,
    buf: [u8; BUFSIZE],
    tail: usize,
    head: usize
}

impl <T : Read> LexBuf<T> {
    fn fetch(&mut self) {
        let keepSize = self.head - self.tail + 1;
        let mut tmpBuf;
        {
            let tmpSlice = &self.buf[self.tail..self.head+1];
            tmpBuf = tmpSlice.clone();
        }
        &mut self.buf[0..keepSize]
            .clone_from_slice(tmpBuf);
        let mut n = self.f
            .read(&mut self.buf[keepSize..]).unwrap();
        if n < BUFSIZE - keepSize {
            self.buf[keepSize+n] = 0;
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

rust

2
推荐指数
1
解决办法
158
查看次数

标签 统计

rust ×1