구조체에 동일한 이름을 가진 구조체 포함
질문은 단일 구조체에 동일한 이름을 가진 두 구조체를 포함하는 데 중점을 둡니다. 일반적으로 이렇게 시도하면 다음 코드 조각에 예시된 것처럼 중복 필드 오류가 발생합니다.
type datastore struct { *sql.Store *file.Store }
별칭을 솔루션으로 입력
이를 방지하려면 문제가 발생하는 경우 권장되는 해결 방법은 유형 별칭을 활용하는 것입니다. 내장된 구조체 중 하나에 대체 이름을 할당함으로써 Go 컴파일러는 두 인스턴스를 구별합니다. 다음 수정된 코드를 고려하십시오.
type SqlStore = sql.Store // this is a type alias type datastore struct { *SqlStore *file.Store }
이 시나리오에서 SqlStore는 원래 sql.Store 유형의 별칭 역할을 합니다. 따라서 데이터 저장소 내에 포함된 필드는 이제 *SqlStore와 *file.Store로 구분되어 중복 필드 충돌을 효과적으로 해결합니다.
유형 별칭의 이점
달리 전통적인 유형 선언에서는 유형 별칭이 별도의 새 유형을 도입하지 않습니다. 대신, 단순히 기존 유형에 대한 대체 이름을 생성합니다. 결과적으로 원본 유형의 동작과 특성이 유지됩니다. 유형 별칭을 활용하면 개발자는 외부 코드와의 호환성을 유지하면서 기본 구현 수정을 피할 수 있습니다.
대체 옵션
유형 별칭 외에도 몇 가지 대체 접근 방식이 있습니다. 원하는 기능을 달성하려면:
위 내용은 Go 구조체에 동일한 이름을 가진 구조체를 포함하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!