php editor Baicao Go 프로그래밍 언어에서는 구조 슬라이스에 대한 포인터를 인터페이스 슬라이스로 변환해야 하는 경우가 있습니다. 이 변환은 슬라이스의 요소를 수정해야 하는 경우와 같은 일부 특정 상황에서 매우 유용합니다. 포인터를 인터페이스 슬라이스로 변환하면 데이터 일관성 및 동기화 문제에 대한 걱정 없이 슬라이스의 요소에 쉽게 액세스하고 수정할 수 있습니다. 이 기사에서는 이러한 변환 방법을 설명하고 실제 적용 사례를 몇 가지 제공합니다.
다음 예제를 만들기 위해 일부 프로덕션 GoLang 코드를 잘라냈습니다.
으아악저는 많은 구조체를 가지고 있으며 모두 동일한 인터페이스를 구현합니다.
JSON에서 역직렬화한 후 로드된 각 개체에 대해 메서드를 호출하여 개체 초기화를 완료하려는 아이디어입니다. 일부 JSON 파일에는 최상위 배열이 있습니다. 즉, 일단 역직렬화되면 구조의 목록/슬라이스입니다.
그러나 다음 작업을 동시에 수행할 수 있는 명령문 조합을 찾을 수 없습니다.
json.Unmarshal()
분명히 이것을 두 가지 기능(loadData 및 초기화Data)으로 나누어 두 기능을 모두 수행할 수 있습니다.
이것을 단일 방식으로 작동하도록 재구성할 수 있는 방법이 있나요?
메서드를 Initializer
인터페이스를 구현하는 멤버가 포함된 구조체 조각을 허용하는 일반 메서드로 선언할 수 있습니다.
이를 위해 다음과 같이 메소드를 선언할 수 있습니다.
으아악이렇게 하려면 슬라이스 값을 구조체의 포인터 수신자 메서드와 함께 사용할 포인터로 선언해야 합니다(예: []*AlphaStruct
与 []AlphaStruct
).
출력:
으아악위 내용은 Go - 포인터를 구조체 슬라이스로 인터페이스 슬라이스로 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!