> 백엔드 개발 > Golang > 인터페이스 유형 배열의 중첩 구조 필드에 액세스하는 방법

인터페이스 유형 배열의 중첩 구조 필드에 액세스하는 방법

WBOY
풀어 주다: 2024-02-14 09:00:11
앞으로
777명이 탐색했습니다.

인터페이스 유형 배열의 중첩 구조 필드에 액세스하는 방법

PHP 편집기 Youzi가 인터페이스 유형 배열의 중첩 구조 필드에 액세스하는 방법을 설명합니다. 인터페이스에서 반환된 데이터를 처리할 때 때때로 중첩된 구조, 즉 배열에 더 깊은 필드가 포함되어 있는 경우가 있습니다. 이러한 중첩 필드에 액세스하려면 도트 연산자나 배열 첨자를 사용하여 레이어별로 얻을 수 있습니다. 배열의 계층 구조와 해당 키 이름을 이해함으로써 필요한 필드 값에 쉽게 액세스하고 인터페이스에서 반환된 데이터를 유연하게 처리할 수 있습니다. 다음으로 다양한 데이터 처리 시나리오를 쉽게 처리할 수 있도록 인터페이스 유형 배열에서 중첩된 구조 필드를 작동하는 방법을 자세히 소개합니다.

질문 내용

이 중첩 구조의 FieldBase 필드에 액세스하고 싶습니다.

이것은 내 코드 샘플입니다:

으아아아

배열 x에 있는 각 중첩 구조의 FieldBase 필드 값에 액세스하는 방법을 알고 싶습니다. 여기서 x는 인터페이스 유형입니다. 액세스를 위해 유형 어설션을 사용해 보았지만 단일 요소에서만 시도해 볼 수 있습니다.

type InterfaceA interface {
    FunA()
}

type BaseStruct struct {
    FieldBase string
}

type SubStruct struct {
    BaseStruct
}

func (c SubStruct) FunA() {
}

type SubStruct2 struct {
    BaseStruct
}

func (c SubStruct2) FunA() {
}

func main() {
    var x = [2]InterfaceA{
        SubStruct{BaseStruct: BaseStruct{FieldBase: "aaa"}},
        SubStruct2{BaseStruct: BaseStruct{FieldBase: "bbb"}},
    }

    // TODO: Access fields of nested classes in the array

}
로그인 후 복사

해결 방법

배열이 인터페이스에 속하므로 각 유형에 대한 유형 어설션 및 핸들이 필요하거나 인터페이스 메서드가 필요합니다. 그러나 내 생각에 당신이 원하고 필요한 것은 FieldBase 를 노출하는 각 구조체 유형에 대해 다음과 같은 인터페이스 메서드를 갖는 것입니다.

으아아아

위 내용은 인터페이스 유형 배열의 중첩 구조 필드에 액세스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿