오류: Golang에서 슬라이스에 대한 포인터 범위를 지정할 수 없습니다.
Golang에서 슬라이스에 대한 포인터를 반복하려고 하면 " 슬라이스 포인터에 대한 범위" 오류가 발생할 수 있습니다. 일반적으로 슬라이스에 대한 포인터가 필요하지 않기 때문에 이는 일반적인 오해입니다.
제공된 코드 조각에서 문제는 populateClassRelationships 함수에서 발생합니다.
func (c *ClassRepository) populateClassRelationships(classes *[]entities.Class) { for i := range classes { <---------- Here is the problem
클래스 매개변수의 유형은 다음과 같습니다. 슬라이스(*[]entities.Class)에 대한 포인터이지만 범위 초과 구문에서는 직접 슬라이스 유형이 필요합니다. ([]entities.Class).
이유
Go 슬라이스는 이미 기본 배열에 대한 포인터이므로 슬라이스에 대한 포인터가 기술적으로 중복되고 비효율적입니다. 슬라이스에는 다음 정보가 포함됩니다.
따라서 슬라이스를 포인터에 할당해도 값이 추가되지 않으며 생성할 수 있습니다. 혼란.
해결 방법
오류를 해결하려면 간접 참조(*)를 제거하면 됩니다. 슬라이스를 반복하는 올바른 구문은 다음과 같습니다.
func (c *ClassRepository) populateClassRelationships(classes []entities.Class) { for i := range classes {
이것은 슬라이스에 대한 포인터를 참조하지 않고 클래스 슬라이스의 요소를 직접 반복합니다.
위 내용은 Go가 '슬라이스에 대한 포인터 범위를 지정할 수 없습니다'를 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!