Go 오류: 인스턴스화 없이 일반 유형을 사용할 수 없습니다.

王林
풀어 주다: 2024-02-08 23:12:09
앞으로
690명이 탐색했습니다.

Go 오류: 인스턴스화 없이 일반 유형을 사용할 수 없습니다.

오늘 Apple이 여러분과 공유하고 싶은 PHP 편집기는 Go 언어의 버그에 관한 것입니다. 일반 유형은 인스턴스화 없이 사용할 수 없습니다. Go 언어에서 제네릭은 보다 다양하고 유연한 코드를 작성할 수 있게 해주는 매우 강력한 기능입니다. 그러나 때로는 인스턴스화 없이 제네릭 유형을 사용할 수 없는 문제에 직면할 수도 있습니다. 이 오류로 인해 수정 방법이 혼란스러울 수 있습니다. 다음으로, 이 문제의 원인과 해결 방법을 살펴보겠습니다!

질문 내용

Go 제네릭을 배우던 중 도저히 풀 수 없을 것 같은 오류가 발생했습니다. 가장 간단한 코드로 요약해봤습니다:

으아악

Playground에서 make() 调用(以及在已注释掉的 new 호출과 유사하게 다음과 같은 오류 메시지가 나타납니다.

으아악

하지만 make()는 인스턴스화 함수입니다. 그래서 구문의 미묘함이 부족하기를 바라고 있습니다. Go는 무엇에 대해 불평하고 있으며 무엇을 바로잡아야 합니까? make() 是一个实例化函数。所以,我希望我错过了一些语法上的微妙之处。 Go 抱怨什么以及需要纠正什么?

解决方法

每当您使用参数化类型时,包括需要类型参数的任何地方,例如内置的 make해결 방법

내장make와 같이 유형 매개변수가 필요한 모든 곳을 포함하여매개변수화된 유형을 사용할 때마다 해당 정의의 유형 매개변수를 실제 유형으로 바꿔야 합니다. 이것을 인스턴스화라고 합니다. 으아악

일반 유형을

다른

일반 유형의 유형 매개변수로 사용하는 경우 해당 유형도 인스턴스화해야 합니다.

으아악 예를 들어 함수 시그니처, 필드 및 유형 정의에서 인스턴스화를 위해 유형 매개변수를 사용할 수 있습니다. 一个> 으아악

언어 사양의 관련 참조는 (현재) 두 개의 다른 위치,

유형 정의에 있습니다:

인스턴스화

다른 프로그래밍 언어에서 "인스턴스화"는 객체의 인스턴스를 생성하는 것을 의미할 수 있습니다. Go에서 이 용어는 구체적으로 유형 매개변수를 구체적인 유형으로 바꾸는 것을 의미합니다. 내 생각에는 이 용어의 사용법은 여전히 ​​일관적이지만 Go에서는 반드시 할당을 의미하지는 않습니다.

명시적인 유형 매개변수 없이 일반 함수를 호출할 수 있습니다. 인스턴스화도 발생합니다. 단지 유형 매개변수가 모두 함수 매개변수에서 추론될 수 있다는 것입니다. 으아악

일반 🎜유형🎜에도 적용되는 추론은 유형 매개변수 목록이 비어 있지 않아야 한다는 제한이 있습니다. 하지만 이 기능은 비활성화되어 있으므로 모든 유형 매개변수를 명시적으로 제공해야 합니다. 🎜 으아악

위 내용은 Go 오류: 인스턴스화 없이 일반 유형을 사용할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!