Menu
CoddyTech

문자열을 숫자로 파싱하기

Coddy Rust 여정의 논리와 흐름 섹션에 포함된 레슨. 66개 중 47번째.

Result의 가장 일반적인 실제 활용 사례 중 하나는 문자열을 숫자로 변환하는 것입니다. Rust에서는 .parse() 메서드를 사용해 이를 수행하며, 이는 Result가 존재하는 이유를 잘 보여 줍니다. 파싱은 실패할 수 있기 때문입니다.

.parse() 메서드는 문자열을 숫자로 변환하려고 시도하지만, 모든 문자열이 유효한 숫자를 나타내는 것은 아닙니다. 예를 들어, "42"는 숫자 42로 파싱할 수 있지만, "hello"는 어떤 숫자로도 변환할 수 없습니다.

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

파싱에 성공하면 .parse()는 변환된 값을 포함하는 Ok(number)를 반환합니다. 파싱에 실패하면 실패한 이유에 대한 정보가 담긴 Err(error)를 반환합니다. 이렇게 하면 두 가지 가능성을 모두 명시적으로 처리해야 하므로, 잘못된 입력으로 인해 프로그램이 충돌하는 것을 방지할 수 있습니다.

지금까지 배운 Result 기법 중 어떤 것이든 사용해 파싱 결과를 처리할 수 있습니다. 명시적으로 처리하려면 match를, 성공할 것이라고 확신한다면 unwrap()을, 오류를 전파하려면 ? 연산자를 사용하세요.

challenge icon

챌린지

쉬움
변환된 정수 값을 반환하는 함수 parse_to_integer를 작성하세요. 문자열 input을 입력받습니다. 문자열을 유효한 정수로 변환할 수 없으면 기본값으로 0을 반환하세요.

.parse() 메서드를 사용해 문자열을 i32로 변환하고, 안전한 반환값을 제공하도록 Result를 적절히 처리하세요.

매개변수:

  • input (String): 정수로 변환할 문자열

반환값: 변환에 성공하면 변환된 정수를 반환하고, 변환에 실패하면 0을 반환합니다(i32).

직접 해보기

fn parse_to_integer(input: String) -> i32 {
    // 여기에 코드를 작성하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Rust 컴파일러