>  기사  >  백엔드 개발  >  "인터페이스{}" 맵을 반복하고 Golang의 모든 항목에 대해 동일한 메서드를 호출합니다.

"인터페이스{}" 맵을 반복하고 Golang의 모든 항목에 대해 동일한 메서드를 호출합니다.

王林
王林앞으로
2024-02-05 11:57:54553검색

迭代“interface{}”的映射并在 Golang 中的每个项目上调用相同的方法

질문 내용

바둑을 배우기 위해 간단한 콘솔 게임을 개발 중인데 다른 언어에서는 문제가 없지만 바둑에서는 거의 불가능해 보이는 겉보기에 단순해 보이는 문제에 봉착했습니다.

다음과 같은 구조체의 필드로 매핑된 인터페이스가 있습니다.

으아아아

지도를 반복하고 지도에 저장된 각 항목에 대해 render() 方法(假设它们都实现 render() 메서드를 호출해야 합니다. 예를 들어 js나 php에서는 문제가 되지 않지만, 작업 중에는 하루 종일 벽에 머리를 부딪히게 됩니다.

다음과 같은 것이 필요합니다:

으아아아

이 방법은 작동하지 않았지만 유형을 지정하고 각 항목을 개별적으로 수동으로 호출하면 작동했습니다.

으아아아

지도의 각 항목에 대해 render() 메서드를 어떻게 호출하나요? 또는 이 문제를 해결할 수 있는 더 나은/다른 방법이 있다면 제가 어찌할 바를 모르고 있으니 알려주시기 바랍니다.


정답


인터페이스 정의:

으아아아

그런 다음 해당 메서드를 구현하는 한 Assert 맵 요소를 입력하고 렌더링을 호출할 수 있습니다.

으아아아

무언가가 렌더링 가능한지 테스트하려면 다음을 사용하세요.

으아아아

위 내용은 "인터페이스{}" 맵을 반복하고 Golang의 모든 항목에 대해 동일한 메서드를 호출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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