사용자가 Rust로 작성한 간단한 함수에 명령 줄 인수를 전달하길 원합니다. int::from_str(args[1])
을 사용하여 변환 할 수 있음을 알고 있지만 Option<int>
을 반환합니다. 이는 int
이있는 함수에 전달하기 위해 아래에 표시된 것과 같이 match
문을 사용해야합니다. 그러나 n 인수를 사용하면 2^n 가능성이 있습니다. 일련의 중첩 된 match
문장을 작성하는 것은 끔찍할 것입니다.루스트 열거 형을 부울 값으로 검사 하시겠습니까?
// will return either Some(int) or None
let start = int::from_str(args[1]), end = int::from_str(args[2]);
if typeof(start) == Some && typeof(end) == Some {
println(fmt!("You entered: %d, %d", start, end);
} else {
println("Error with arguments.");
}
그런 방법이 있습니까? 그래서 열거 형의 어떤 멤버가 match
이 아닌지 테스트 할 수 있습니까? 열거의
아, 나는 경기에서 여러 개의 인수를 사용할 수 있다는 것을 몰랐습니다. 훌륭합니다. 나는 is_some() 메소드와 그와 유사한 메소드를 명시 적으로 써야 할 필요가있다. –
@limp_chimp, correct, 표준 라이브러리의'Option'에'.is_some()'이 정의되어 있습니다; 그러나 당신이 당신 자신의 enum을 정의한다면, 자동으로 그것과 같은 메소드는 없을 것이다. – huon
@limp_chimp : 실제로'is_some'의 구현을 보면,'! self.is_none()'이 있는데'match * self {None => true, Some (_) => false}'입니다. (그러나 여분의 메소드 호출을위한 퍼포먼스는 두려워하지 않으며, 이것들은 모두'# [inline]'으로 표시됩니다.) –