구조 주소로 인터페이스 값을 읽는 방법

WBOY
풀어 주다: 2024-02-10 19:21:08
앞으로
734명이 탐색했습니다.

구조 주소로 인터페이스 값을 읽는 방법

Go 언어에서 인터페이스는 매우 강력하고 유연한 유형입니다. 그러나 인터페이스 값에서 구조 주소를 읽으려고 할 때 약간의 혼란이 발생할 수 있습니다. 그렇다면 구조체 주소가 있는 인터페이스 값을 어떻게 읽습니까? 이 기사에서는 이 질문에 대한 답변을 제공하고 몇 가지 실용적인 팁과 샘플 코드를 제공합니다. 당신이 초보자이든 숙련된 Go 개발자이든 이 글이 도움이 될 것입니다. 한 번 보자!

질문 내용

데이터 유형의 변수interface{}가 있고 여기에 구조체의 주소를 전달합니다. 이제 인터페이스에서 필드를 읽을 수 없습니다

코드는 다음과 같습니다.

으아아아

res.data.username를 사용하면 오류가 발생합니다

인터페이스에서 구조 필드를 읽는 방법은 무엇입니까?

해결 방법

이것을 golang과 비교하세요. 해당 구조체를 json으로 마샬링한 후에도 go 구조체에 존재하지 않는 필드가 여전히 존재하는 이유는 무엇입니까? 처음에는 둘이 같은 줄 알았습니다. 그러나 그것은 사실이 아닌 것으로 밝혀졌습니다.

이 질문의 경우 res.data 拥有 *userdata 유형의 값입니다. 따라서 간단한 유형 주장이 가능합니다.

으아아아

다음 데모는 @mkopriva의 두 데모를 병합하여 차이점을 보여줍니다.

으아아아

출력은 다음과 같습니다.

으아아아

위 내용은 구조 주소로 인터페이스 값을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!