진단과 원인
링크일치하지 않을 수 있는 let 패턴
- 계열
- topaz
- 단계
- check
- 코드
TPZ5026
원인과 조건
let 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.
대응
if let 또는 match로 일치 여부에 따른 두 경우를 처리하거나, 항상 일치하는 패턴을 선택하세요.
컴파일러 단계는 check입니다.
컴파일러 설명
let 패턴은 실행 중 값과 일치하지 않을 수 있습니다.
메시지 서식에서 ⟨value⟩는 보고한 프로그램에 따라 계산한 텍스트를 나타냅니다.
refutable pattern in `let`: it does not match every value of the type — use `if let` to handle the non-matching caselet 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.
일치하지 않을 수 있는 let 패턴
let 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.
대응
링크if let 또는 match로 일치 여부에 따른 두 경우를 처리하거나, 항상 일치하는 패턴을 선택하세요.
재현과 검증
링크거절된 프로그램
링크let maybe: Option<int> = None()let Some(value) = maybe
기대 출력0이 아닌 종료 코드
표준 출력 없음.$ topaz check example.tpz · 대상 제품 5.21.3
기대 결과
수정한 프로그램
링크let maybe: Option<int> = None()let value: int = match (maybe) {case Some(number) => numbercase None() => 0}
기대 출력종료 코드 0
$ topaz check example.tpz · 대상 제품 5.21.3
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.