Go의 err.(*os.PathError) 이해
유효 오류에 대한 Go 문서를 탐색하는 동안 "err"라는 줄을 발견했습니다. .(*os.PathError)" 그리고 그것이 무엇을 의미하는지 궁금했습니다.
err.(*os.PathError)가 무엇입니까?
os.Create 함수는 error를 두 번째 반환 값으로 사용하여 오류 인터페이스 { Error() string }을 구현합니다. os.Create로 파일 생성을 시도할 때 문제가 발생하면 오류를 반환합니다.
구체적으로 기기에 남은 공간이 없는 상태에서 파일 생성을 시도하면 os 패키지가 오류 구현으로 *os.PathError를 반환합니다. Error() 메서드 이외의 오류에 대한 추가 정보에 액세스하려면 이를 변환해야 합니다.
Type Assertion
문 "e, ok := err. (os.PathError)"는 유형 어설션을 수행합니다. 인터페이스 값 err에 구체적인 유형으로 os.PathError가 포함되어 있는지 확인합니다. 그렇다면 os.PathError를 e에 할당하고 ok를 true로 설정합니다. 그렇지 않으면 os.PathError(nil)의 0 값을 e에 할당하고 ok를 false로 설정합니다.
Usage
제공된 코드에서 , 장치에 남은 공간이 없음을 나타내는 ENOSPC 오류 코드를 찾고 있습니다. os.Create에서 반환된 오류가 이 코드와 일치하는 경우 정리 작업을 실행하여 일부 공간을 확보한 다음 파일 생성을 다시 시도할 수 있습니다.
위 내용은 Go에서 *os.PathError의 특정 정보에 액세스하기 위해 유형 어설션을 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!