>백엔드 개발 >Golang >리플렉션을 사용하여 바이트를 구조체 필드에 복사

리플렉션을 사용하여 바이트를 구조체 필드에 복사

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

리플렉션을 사용하여 바이트를 구조체 필드에 복사

PHP 편집기 딸기 소개: 프로그래밍에서 때때로 바이트 데이터를 구조 필드에 복사해야 합니다. 이 프로세스는 리플렉션을 사용하여 달성할 수 있습니다. Reflection은 런타임에 코드 구조를 검사하고 조작하기 위한 강력한 도구입니다. 리플렉션을 통해 구조체의 필드 정보를 얻고 필드의 유형과 순서에 따라 바이트 데이터를 구조체에 복사하여 데이터 변환 및 할당을 실현할 수 있습니다. 이러한 접근 방식은 편의성과 유연성을 제공하여 바이트 데이터를 보다 효율적으로 처리할 수 있게 해줍니다.

질문 내용

바이트 조각을 반복하고 이를 구조체의 필드에 할당하는 방법은 무엇입니까?

으아악

기대사항:

  • f1 = [83,117,110,83]
  • f2 = [0,1]
  • f3 = [0,65]

이전에 c/C++에서 이 작업을 수행한 적이 있지만 Go에서는 어떻게 해야 할지 모르겠습니다. 여러 가지 다른 구조를 갖게 되므로 일반 할당 함수가 필요하며 그 중 일부는 스트림에 존재하지 않을 수도 있습니다.

이상적으로는 초기화된 구조체를 전달하고 싶습니다. 그러면 내 코드가 해당 구조체 필드를 반복적으로 채웁니다.

해결 방법

바이너리/인코딩 패키지의 리플렉션 코드를 활용하세요.

1단계: 필드를 슬라이스 대신 배열로 선언합니다.

으아악

2단계: binary.read를 사용하여 데이터를 구조로 디코딩합니다 p> 으아악

3단계: 완료되었습니다!

으아악

https://www.php.cn/link/42ae1544956fbe6e09242e6cd752444c

위 내용은 리플렉션을 사용하여 바이트를 구조체 필드에 복사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제