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

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

WBOY
WBOY앞으로
2024-02-14 09:00:11704검색

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

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으로 문의하시기 바랍니다. 삭제