> 백엔드 개발 > Golang > 일반 함수에 전달된 슬라이스의 합집합을 반복하는 방법은 무엇입니까? (T 코어리스 타입)

일반 함수에 전달된 슬라이스의 합집합을 반복하는 방법은 무엇입니까? (T 코어리스 타입)

WBOY
풀어 주다: 2024-02-06 08:50:08
앞으로
394명이 탐색했습니다.

如何迭代通用函数中传递的切片并集? (T无芯型)

질문 내용

go 1.18에서 제네릭을 테스트 중인데 이 예제를 살펴봤습니다. 나는 그 예를 다시 만들고 싶지만 int 슬라이스나 float 슬라이스를 전달할 수 있고 함수에서 슬라이스의 모든 것을 합산할 것입니다.

슬라이스를 반복하는 동안 몇 가지 문제가 발생했습니다. 제가 시도한 방법은 다음과 같습니다.

으아아아

오류가 발생했습니다:

으아아아

이 목표를 어떻게 달성하나요?


정답


인터페이스(인터페이스 제약 조건 포함)의 핵심 유형은 다음과 같이 정의됩니다.

다음 조건 중 하나가 충족되면 인터페이스 t에는 코어 유형이 있습니다. 만족함:

  • t 유형 세트에 있는 모든 유형의 기본 유형인 단일 유형u이 존재합니다

  • 또는 t의 유형 세트에는 동일한 요소 유형 e를 가진 채널 유형만 포함되며 모든 방향성 채널은 동일한 방향을 갖습니다.

인터페이스 제약 조건에는 두 가지 기본 유형 []int64[]float64이 있으므로 핵심 유형이 없습니다.

그래서 코어형이 필요한 곳에는 사용할 수 없습니다. 특히 rangemake.

기본 유형을 요구하도록 인터페이스를 변경한 다음 함수 서명에 슬라이스를 지정할 수 있습니다.

으아아아

이 방법도 작동하지만 더 장황합니다.

으아아아

위 내용은 일반 함수에 전달된 슬라이스의 합집합을 반복하는 방법은 무엇입니까? (T 코어리스 타입)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿