预期 &str 发现生锈的炭?

Expected &str found char with rust?

我遇到了这个错误

expected &str, found char

对于此代码

// Expected output
// -------
// h exists
// c exists

fn main() {
    let list = ["c","h","p","u"];
    let s = "Hot and Cold".to_string();
    let mut v: Vec<String> = Vec::new();
    for i in s.split(" ") {
        let c = i.chars().nth(0).unwrap().to_lowercase().nth(0).unwrap();
        println!("{}", c);
        if list.contains(&c) {
            println!("{} exists", c);
        }
    }
}

我该如何解决这个问题?

list&str 的数组更改为 char 的数组:

let list = ['c', 'h', 'p', 'u'];

双引号 "" 创建字符串文字,而单引号 '' 创建字符文字。请参阅 Rust 参考中的 Literal Expressions

我假设您希望 list 成为 char 的列表而不是 str 的列表,在这种情况下尝试更改

let list = ["c","h","p","u"];

let list = ['c','h','p','u'];

它应该可以工作

Rust playground