nil 포인터가 error interface에 들어 있습니다. Error 메서드가 nil 수신자를 허용하는지 어떻게 확인하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
nil 수신자 메서드는 호출 자체가 항상 panic인 것은 아니고 메서드 본문이 nil을 어떻게 처리하는지에 달려 있습니다. 필드를 무조건 역참조하면 실패하고 명시적으로 nil을 처리하면 문자열을 반환할 수 있습니다.
error interface가 비nil이라는 사실과 내부 포인터의 nil 여부를 구분합니다. 정상 무오류는 가능하면 진짜 nil interface를 반환합니다. 로깅·formatting이 Error를 호출하는 경로까지 테스트해 진단 중 추가 panic이 생기지 않게 합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- nil 수신자 메서드는 호출 자체가 항상 panic인 것은 아니고 메서드 본문이 nil을 어떻게 처리하는지에 달려 있습니다. 필드를 무조건 역참조하면 실패하고 명시적으로 nil을 처리하면 문자열을 반환할 수 있습니다.
- 로깅·formatting이 Error를 호출하는 경로까지 테스트해 진단 중 추가 panic이 생기지 않게 합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: nil 수신자 메서드는 호출 자체가 항상 panic인 것은 아니고 메서드 본문이 nil을 어떻게 처리하는지에 달려 있습니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.