相关疑难解决方法(0)

如何在Rust中匹配字符串与字符串文字?

我正在试图弄清楚如何匹配StringRust.

我最初尝试过像这样的匹配,但我发现Rust不能暗中强制转换std::string::String&str.

fn main() {
    let stringthing = String::from("c");
    match stringthing {
        "a" => println!("0"),
        "b" => println!("1"),
        "c" => println!("2"),
    }
}
Run Code Online (Sandbox Code Playgroud)

这有错误:

error[E0308]: mismatched types
 --> src/main.rs:4:9
  |
4 |         "a" => println!("0"),
  |         ^^^ expected struct `std::string::String`, found reference
  |
  = note: expected type `std::string::String`
             found type `&'static str`
Run Code Online (Sandbox Code Playgroud)

然后我尝试构造新String对象,因为我找不到将a String转换为a的函数&str.

fn main() {
    let stringthing = String::from("c");
    match stringthing {
        String::from("a") => println!("0"),
        String::from("b") => …
Run Code Online (Sandbox Code Playgroud)

string match rust

153
推荐指数
4
解决办法
5万
查看次数

匹配可选字符串时,预期字符串,找到和str

我正在尝试在Rust中编写一个简单的函数,它将询问用户一个期待回答"你"或"我"的问题.它应该返回一个布尔值,或者再次询问用户是否回答错误.我提出了:

fn player_starts() -> bool {                                                    
    println!("Who will start (me/you)");                                       
    loop {                                                                      
        let input = readline::readline(">");                                    
        match input {                                                           
            Some("me") => return true,                                          
            Some("you") => return false,                                        
            _ => None,                                                          
        }                                                                          
    }                                                                           
}       
Run Code Online (Sandbox Code Playgroud)

我得到的是:

error: mismatched types:
 expected `collections::string::String`,
    found `&'static str`
(expected struct `collections::string::String`,
found &-ptr) [E0308]
Run Code Online (Sandbox Code Playgroud)

有没有办法强迫文字在这里工作,还是有更好的方法来实现我的目标?

pattern-matching rust

11
推荐指数
2
解决办法
7666
查看次数

如何将结构中的String与常量值匹配?

是否可以String使用静态str值匹配Rust中的结构?这是一个最小的例子:

struct SomeStruct {
    a: String,
}

fn main() {
    let s = SomeStruct {
        a: "Test".to_string(),
    };
    match s {
        SomeStruct { a: "Test" } => {
            println!("Match");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这将无法编译,因为静态str引用无法与String成员匹配.它可以在没有解构的情况下工作a,然后在匹配中添加嵌套的if语句吗?

pattern-matching rust

3
推荐指数
1
解决办法
576
查看次数

标签 统计

rust ×3

pattern-matching ×2

match ×1

string ×1