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

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

WBOY
WBOY앞으로
2024-02-06 08:50:08360검색

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

질문 내용

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

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

으아아아

오류가 발생했습니다:

으아아아

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


정답


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

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

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

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

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

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

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

으아아아

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

으아아아

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

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