-2
проблема угадывать игрыугадайку в Русте 1.3.0
extern crate rand;
use std::io;
use std::cmp::Ordering;
use rand::Rng;
fn main() {
println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(1, 101);
println!("The secret number is: {}", secret_number);
println!("Please input your guess.");
let mut guess = String::new();
io::stdin().read_line(&mut guess)
.ok()
.expect("failed to read line");
println!("You guessed: {}", guess);
match guess.cmp(&secret_number) {
Ordering::Less => println!("Too small!"),
Ordering::Greater => println!("Too big!"),
Ordering::Equal => println!("You win!"),
}
}
Но это дает мне ошибку:
src\main.rs:26:21: 26:35 error: mismatched types:
expected `&collections::string::String`,
found `&_`
(expected struct `collections::string::String`,
found integral variable) [E0308]
src\main.rs:26 match guess.cmp(&secret_number) {
^~~~~~~~~~~~~~
Что вызывает это, и как я могу это исправить?
Вы сравниваете строку с целым числом. – Veedrac
Просто прочитайте [документацию] (http://doc.rust-lang.org/book/guessing-game.html) для ** еще одного абзаца **, и это объясняется: * Whew! Это большая ошибка. Суть его в том, что у нас «несоответствующие типы». * – Shepmaster