Reflection을 사용하여 슬라이스에 대한 포인터를 검색하려면 반사, Reflect.New() 활용:
사용을 기억하세요 x.Interface()를 사용하여 실제 값 대신 Reflect.Value를 함수에 전달하는 것을 방지합니다.
주소 지정 가능한 값은 해당 주소가 다음을 가리키는지 확인합니다. 의미있는 위치. 함수 내의 스택에 대한 할당은 이를 보장하지 않으므로 주소 지정이 불가능합니다.
reflect.MakeSlice는 값을 배열, 구조체 또는 역참조된 포인터의 요소로 주소 지정하지 않고 힙의 로컬 슬라이스에 할당합니다. . 따라서 주소 지정이 불가능한 값을 반환합니다.
mgo의 iter.All과 같은 함수에서는 슬라이스가 추가되는 경우가 많기 때문에 포인터가 필요한 경우가 많습니다. 추가하면 호출자에게 전달되어야 하는 슬라이스의 메모리 주소가 변경됩니다.
위 내용은 Reflect.MakeSlice가 주소 지정이 불가능한 값을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!