2014-12-24 2 views
2

official guide을 따라 녹을 배우려고합니다.문자열에 대한 구문 분석이 없습니다.

그러나 Stringparse 메서드를 구현하지 않는 오류가 발생했습니다. 나는 문서를 수색하고 방법 here를 찾아 냈다.

안심할 수 있도록 안내문에 문제가 있는지 (이전 1.0 언어에 대한 가능성이 높음) 또는 내가 잘못했는지 알고 싶습니다.

녹 버전 : 0.13.0 - 야간

rustc (34d680009 2014년 12월 22일 0시 12분 47초 0000)

나는 코드와 오류가 울부 짖는 소리를 복사했습니다.

/home/daniel/Projects/guessing_game/src/main.rs:16:41: 16:48 error: type collections::string::String does not implement any method in scope named parse /home/daniel/Projects/guessing_game/src/main.rs:16 let input_num: Option = input.parse();

+1

이 코드는'rustc 0.13.0-dev (29ad8539b 2014-12-24 16:21:23 +0000)'와 함께 정상적으로 작동합니다. 문서와 일치하도록 rustc를 업데이트 할 수 있습니다. – Shepmaster

답변

3

rustc 버전의 단지 질문 :

use std::io; 
use std::rand; 

fn main() { 
    println!("Guess the number!"); 

    let secret_number = (rand::random::<uint>() % 100u) + 1u; 

    println!("The secret number is: {}", secret_number); 

    println!("Please input your guess."); 

    let input = io::stdin().read_line() 
          .ok() 
          .expect("Failed to read line"); 
    let input_num: Option<uint> = input.parse(); 

    let num = match input_num { 
     Some(num) => num, 
     None  => { 
      println!("Please input a number!"); 
      return; 
     } 
    }; 


    println!("You guessed: {}", num); 

    match cmp(num, secret_number) { 
     Less => println!("Too small!"), 
     Greater => println!("Too big!"), 
     Equal => println!("You win!"), 
    } 
} 

fn cmp(a: uint, b: uint) -> Ordering { 
    if a < b { Less } 
    else if a > b { Greater } 
    else { Equal } 
} 

컴파일, 다음이 제기 parse 방법 was added ~2 days ago는하지만 컴파일러는 약 3 일 이전이다. 녹이 빨리 움직이기 때문에 불행히도 출혈이있을 때 이와 같은 작은 경우를 치기가 쉽습니다.

이 내용이 실제로 the 9th of January에서 해결되기를 바랍니다.

+0

음, 그건 분명히 불행 이었어. 나는 녹을 다시 설치했고 작동했습니다! – vise

관련 문제