Я попытался получить пользовательский ввод, а затем сравнить его с чем-то, и у меня возникла проблема

Я попытался получить пользовательский ввод, а затем сравнить его с чем-то, и у меня возникла проблема :(

это мой код:

use std::io::stdin;

fn main() {
    let mut command = String::new();
    loop {
        stdin().read_line(&mut command).ok().expect("Failed to read line");
        if String::from("help") == &*command {
            println!("it worked!");
        }
    }
}

Что случилось? Что вы ожидали? Пожалуйста, отредактируйте это, чтобы включить больше деталей.

squiguy 06.05.2022 21:51
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
1
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
use std::io::stdin;

fn main() {
    let mut command = String::new();
    loop {
        stdin().read_line(&mut command).ok().expect("Failed to read line");
        if String::from("help") == command.trim_end().to_string() {
            println!("it worked!");
        }
        command.clear();
    }
}

Попробуйте очистить строку перед повторным чтением в цикле. Кроме того, read_line оставляет новую строку в строке, поэтому вы можете обрезать конец строки перед сравнением.

Другие вопросы по теме