>  기사  >  백엔드 개발  >  Go func를 uintptr로 변환하는 올바른 방법은 무엇입니까?

Go func를 uintptr로 변환하는 올바른 방법은 무엇입니까?

王林
王林앞으로
2024-02-09 13:10:081121검색

将 Go func 转换为 uintptr 的正确方法是什么?

Go 언어에서는 `func` 유형을 `uintptr` 유형으로 변환하는 것이 일반적인 작업이지만, 잠재적인 문제가 발생할 수 있으므로 직접 변환하지 않는 것이 올바른 방법입니다. 올바른 방법은 `unsafe` 패키지의 `Pointer` 함수를 사용하여 먼저 `func` 유형 값을 `unsafe.Pointer` 유형으로 변환한 다음 이를 `uintptr` 유형으로 변환하는 것입니다. 이는 유형 변환의 안전성을 보장하고 예측할 수 없는 오류를 방지합니다. 이 방법을 사용하려면 'unsafe' 패키지를 사용해야 하지만 올바른 상황에서는 'Go func'를 'uintptr'로 변환하는 문제를 효과적으로 해결할 수 있습니다.

질문 내용

Go 코드에서 Go 함수를 전달하고 받아야 합니다.

go 언어에서 시스템 호출이 작동하는 방식으로 인해 "passage"에 사용되는 유형은 uintptr입니다.

syscall.syscalln이 이 유형을 수락하고 반환하므로 uintptr 之外我别无选择,因为 syscall.syscalln 선택의 여지가 없습니다.

go funcfunc 转换为 uintptr로 변환하는 올바른 방법은 무엇인가요?

샌드박스에서 사용해봤는데 단순 변환이 안되네요.

으아악

인터넷으로 검색했는데 이 정보는 구글에서 직접 볼 수 없습니다.

감사합니다.

Solution

해결책을 찾았어요! 함수 포인터를 전달해야 합니다.

으아악 으아악

위 내용은 Go func를 uintptr로 변환하는 올바른 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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