>백엔드 개발 >Golang >golang의 'method.Call'에 적합한 숫자 유형을 만드는 좋은 방법이 있습니까?

golang의 'method.Call'에 적합한 숫자 유형을 만드는 좋은 방법이 있습니까?

WBOY
WBOY앞으로
2024-02-08 23:06:081222검색

golang의 method.Call에 적합한 숫자 유형을 만드는 좋은 방법이 있습니까?

PHP 편집기 Youzi golang에서 method.Call 메서드를 사용하여 함수를 호출할 때 숫자 유형 매개변수에 몇 가지 문제가 발생할 수 있습니다. 하지만 이 문제를 해결할 수 있는 몇 가지 방법이 있습니다. 먼저 숫자 유형을 해당 Reflect.Value 유형으로 변환한 다음 이를 method.Call 메소드에 전달할 수 있습니다. 또한 반사 방법을 사용하여 함수의 매개변수 유형을 획득하고 매개변수 유형에 따라 해당 처리를 수행할 수도 있습니다. 간단히 말해서, 이러한 메소드를 통해 우리는 숫자형을 golang의 메소드 호출에 적합한 숫자형으로 만들 수 있어 이 문제를 해결할 수 있습니다.

질문 내용

Code Go Playground:

으아악

출력:

으아악

메서드를 동적으로 호출해야 하는데 매개변수가 다른 데이터 형식에서 나오므로 숫자 유형을 변환해야 하기 때문입니다. 예를 들어 Golang에서 JSON을 구문 분석할 때 지정되지 않은 숫자 유형은 아마도 int여야 하지만 float64로 처리됩니다.

코드가 형편없지만 잘 작동합니다.

이 작업을 수행하는 더 좋은 방법이 있는지 궁금합니다.

해결 방법

reflect API를 사용하여 값을 변환하세요.

으아악

패닉을 방지하기 위해 이 코드는 변환하기 전에 변환이 허용되는지 확인합니다.

PlayGround에서 코드를 실행하세요!

위 내용은 golang의 'method.Call'에 적합한 숫자 유형을 만드는 좋은 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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