我的代码中有一个函数,它接受&[&'a str]
:
fn user_quicksort<'a>(list: &[&'a str]) -> Vec<&'a str>
在调用方中,我有一个Box<[Box<str>]>
变量,我希望将其传递给它;但是,Rust给了我以下错误:
error[E0308]: mismatched types
--> src\main.rs:36:33
|
36 | let sorted = user_quicksort(&input);
| -------------- ^^^^^^ expected `&[&str]`, found `&Box<[Box<str>]>`
| |
| arguments to this function are incorrect
|
= note: expected reference `&[&str]`
found reference `&Box<[Box<str>]>`
我使用Box<str>
而不是String
的原因是因为Box<str>
是不可变的、更快的、更小的.
我该怎么办?
这就是我得到input
分的原因:
let input = fs::read_to_string("input.txt")
.expect("Unable to read file")
.split("\n")
.map(|s| s.to_string().into_boxed_str())
.collect::<Box<[Box<str>]>>();