Go 언어에서 인터페이스는 매우 강력하고 유연한 유형입니다. 그러나 인터페이스 값에서 구조 주소를 읽으려고 할 때 약간의 혼란이 발생할 수 있습니다. 그렇다면 구조체 주소가 있는 인터페이스 값을 어떻게 읽습니까? 이 기사에서는 이 질문에 대한 답변을 제공하고 몇 가지 실용적인 팁과 샘플 코드를 제공합니다. 당신이 초보자이든 숙련된 Go 개발자이든 이 글이 도움이 될 것입니다. 한 번 보자!
데이터 유형의 변수interface{}
가 있고 여기에 구조체의 주소를 전달합니다. 이제 인터페이스에서 필드를 읽을 수 없습니다
코드는 다음과 같습니다.
으아아아 res.data.username
를 사용하면 오류가 발생합니다
인터페이스에서 구조 필드를 읽는 방법은 무엇입니까?
이것을 golang과 비교하세요. 해당 구조체를 json으로 마샬링한 후에도 go 구조체에 존재하지 않는 필드가 여전히 존재하는 이유는 무엇입니까? 처음에는 둘이 같은 줄 알았습니다. 그러나 그것은 사실이 아닌 것으로 밝혀졌습니다.
이 질문의 경우 res.data
拥有 *userdata
유형의 값입니다. 따라서 간단한 유형 주장이 가능합니다.
다음 데모는 @mkopriva의 두 데모를 병합하여 차이점을 보여줍니다.
으아아아출력은 다음과 같습니다.
으아아아위 내용은 구조 주소로 인터페이스 값을 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!