[英]error[E0308]: mismatched types — expected `&str`, found struct `std::string::String`
[英]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.