gpt4 book ai didi

Rust 通过空格分割线 : No method collect found for type &str

转载 作者:行者123 更新时间:2023-11-29 08:31:51 26 4
gpt4 key购买 nike

我正在尝试逐行处理命令行的输出,但我坚持处理 str::Lines。我正在尝试获取每一行的所有单词并对其进行处理(与某些模式进行比较)

我的代码:

// output came properly from command
let mut lines = String::from_utf8_lossy(&output.stdout).to_string().lines();

for line in lines {
let vec: Vec<&str> = line.collect();

// Try to do something with a split...

编译器提示:

error[E0599]: no method named `collect` found for type `&str` in the current scope
--> src/main.rs:218:39
|
218 | let vec: Vec<&str> = line.collect();
| ^^^^^^^
|
= note: the method `collect` exists but the following trait bounds were not satisfied:
`&mut &str : std::iter::Iterator`
`&mut str : std::iter::Iterator`

我想我可能可以将行复制为字符串并尝试转换它,但是因为我是 Rust 的新手,所以我想获得一些建议/帮助我如何更顺利地转换行?

最佳答案

好的,我想出了解决这个问题的方法,示例中有几处错误:

  1. 因为生命周期,我需要字符串而不是行
  2. 可变性在这里不是问题,所以直接删除
  3. 要迭代 &str 我需要提取 Iterator? (在这里不确定,仍然对 Rust 文档感到有点不自在...)
let s = String::from_utf8_lossy(&output.stdout).to_string();

for line in s.lines() {
let vec: Vec<&str> = line.split(' ').collect();

// Try to do something with a split...

关于Rust 通过空格分割线 : No method collect found for type &str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55865348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com