小编Sho*_*omy的帖子

s 的寿命不够长:借来的价值寿命不够长;

我是 Rust 新手,当使用split并分配给 var 时,会出现以下问题。

use std::io;

fn main() {
    let mut prev_key: &str = "";

    for line in io::stdin().lines(){
        let s = line.unwrap();
        let data: Vec<&str> = s.split("\t").collect::<Vec<_>>();
        if prev_key.len() == 0 {
            prev_key = data[0];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

error[E0597]: s does not live long enough
  --> src/reducer.rs:8:31
   |
8  |         let data: Vec<&str> = s.split("\t").collect::<Vec<_>>();
   |                               ^^^^^^^^^^^^^ borrowed value does not live long enough
9  |         if prev_key.len() == 0 {
   |            -------------- borrow later …
Run Code Online (Sandbox Code Playgroud)

split rust

5
推荐指数
1
解决办法
1419
查看次数

标签 统计

rust ×1

split ×1