Go에서 숫자 유형에 대한 일반 함수를 만드는 방법
JavaScript 및 TypeScript 사용자로서 Go에서 숫자 유형을 처리하는 방법이 궁금할 수 있습니다. int 및 float로 작업하는 동안. 이 기사에서는 모든 숫자 인수를 받아들일 수 있는 일반 함수를 생성하는 가장 좋은 방법을 탐구합니다.
Go 1.18 이상의 일반 함수
유형 매개변수 도입 Go 1.18에서는 이제 T 유형으로 매개변수화된 함수를 정의할 수 있습니다. 인터페이스 제약 조건을 활용하여 T를 숫자로 제한할 수 있습니다. 유형.
func add[T Number](a, b T) T { return a + b }
여기서 제약 조건 Number는 golang.org/x/exp/constraints 패키지를 사용하여 정의됩니다.
type Number interface { constraints.Integer | constraints.Float }
이 제약 조건은 T가 다음과 같은 유형이어야 함을 보장합니다. Constraints.Integer 또는 Constraints.Float를 충족합니다.
일반 사용 함수
이 일반 추가 함수는 모든 숫자 유형의 인수를 처리할 수 있습니다. 그러나 두 인수 모두 동일한 유형이어야 한다는 점에 유의하는 것이 중요합니다. 예를 들어:
fmt.Println(add(1, 2)) // 3 fmt.Println(add(a, b)) // 3 fmt.Println(add(1.5, 3.2)) // 4.7
add(2.5, 2)와 같은 유형을 혼합하려고 하면 컴파일 오류가 발생합니다.
복소수 지원
복수를 포함하도록 숫자 제약 조건을 확장할 수 있습니다. 유형:
type Number interface { constraints.Integer | constraints.Float | constraints.Complex }
복합 유형에서 지원됨에도 불구하고 산술 연산자, -, * 및 /는 지원되는 유일한 연산자로 남아 있습니다. 복합 유형에는 모듈러스 % 및 비트 연산자가 지원되지 않습니다.
위 내용은 Go에서 숫자 유형에 대한 일반 함수를 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!