Issue with tutorial guessing game

I'm working through the tutorial and on this line:

    io::stdin().read_line(&mut guess)
        .ok()
        .expect("Failed to read line");

I'm getting the following error:

error: this function takes 0 parameters but 1 parameter was supplied [E0061]

it's occurring because I take it that read_line is not supposed to be passed parameters. So when I change it to this:

let input = io::stdin().read_line()
        .ok()
        .expect("Failed to read line");

And print the result of input everything works fine. Has there been a change in rust? or is there something I'm missing. Also, if I remove &mut guess and comment out the let for guess the program compiles and runs perfectly.

Just trying to get a handle on this. Thanks!

The code in the tutorial works for me in the current stable version of Rust. What version of Rust are you using?

1 Like

OS X -- homebrew version 1.3.0 stable was well. Do you think I should uninstall that and use the installer method?

The code in the tutorial should definitely work in Rust 1.3. Here's the read_line documentation for 1.3.0.

read_line took zero arguments back in old pre-1.0 versions of Rust. Is it possible you have more than one version installed? What does rustc --version print?

1 Like

rustc 0.13.0-nightly (5ba610265 2014-12-25 18:01:36 +0000)

is what the version reads. So I think I have an old version that homebrew is using.

UPDATE:

yup that is what it was. The Homebrew version # states that rust is 1.3 but rustic isn't. I removed it and downloaded from the website and now rustc gives me this:

rustc 1.3.0 (9a92aaf19 2015-09-15)

thanks!

1 Like