繁体   English   中英

字符串变量赋值期间的 E0308

[英]E0308 during String variable assignment

我正在尝试阅读文本文件并使用text-summarize 库来生成简短的摘要。 据我所知,它接受一个字符串,将其传递给一个开放的 API 以获取文本摘要网站并返回摘要。

我正在尝试编写一个简单的脚本来读取本地文件,汇总并返回摘要。

use std::fs;
mod lib;

fn main() {
    println!("In file {}", "poem.txt");
    let contents = fs::read_to_string("poem.txt").expect("Something went wrong reading the file");
    println!("With text:\n{}", contents);
    let summ = lib::summarize_text(contents);
}

但是,我传递给summarize_text function 的内容变量是错误的字符串,此时我不知道为什么。 我检查了rustc --explain E0308 ,它被建议为一个有用的链接,但不理解讨论。

我相信错误本身是自我描述的:

26 |     let summ = lib::summarize_text(contents);
   |                                    ^^^^^^^^
   |                                    |
   |                                    expected `&str`, found struct `std::string::String`
   |                                    help: consider borrowing here: `&contents`

库接受&str切片,但您提供了一个拥有的String object,因此您需要进行转换,您可以这样写:

let summ = lib::summarize_text(&contents);

// or more explicit version
let summ = lib::summarize_text(contents.as_str());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM