Go에서 숫자 유형에 대한 일반 함수 작성
Go에서는 int 및 float64와 같은 다양한 숫자 유형으로 작업할 때 다음을 생성해야 합니다. 유형별 함수를 사용하거나 값을 일반 유형으로 변환합니다. 더 우아한 접근 방식은 유형 매개변수와 인터페이스 제약 조건을 사용하여 일반 함수를 작성하는 것입니다.
유형 매개변수 및 숫자 제약 조건 사용
Go 1.18 이상에서는 다음을 정의할 수 있습니다. 유형 매개변수 T가 있고 T를 Number 인터페이스로 제한하는 일반 함수는 다음과 같이 정의됩니다.
import "golang.org/x/exp/constraints" type Number interface { constraints.Integer | constraints.Float }
이것은 제약 조건에는 모든 부호 있는 정수 유형과 부호 없는 정수 유형은 물론 부동 소수점 유형도 포함됩니다. 일반 함수는 다음과 같이 작성할 수 있습니다.
func add[T Number](a, b T) T { return a + b }
일반 함수 호출
이 일반 함수를 사용하면 이제 숫자 유형의 두 인수에 대해 산술 연산을 수행할 수 있습니다. . 예:
a := 1 b := 2.5 fmt.Println(add(a, b)) // 3.5
제한 사항
일반 함수에 대한 인수는 동일한 유형이어야 합니다. 또한 함수 내에서 수행할 수 있는 작업은 숫자 제약 조건의 모든 유형(예: , -, * 및 /)에서 지원되는 작업으로 제한됩니다.
복소수 처리
Go는 복합 유형(complex64 및 complex128)도 지원합니다. 이를 일반 함수에 포함하려면 숫자 제약 조건을 확장하여 제약 조건을 포함할 수 있습니다.Complex:
type Number interface { constraints.Integer | constraints.Float | constraints.Complex }
Go의 산술 연산자는 %를 제외하고 복합 유형에서도 지원된다는 점을 기억하세요. 정수형에서만 지원되는 연산자와 비트 연산자.
위 내용은 다양한 숫자 유형을 처리하기 위해 Go에서 일반 함수를 어떻게 작성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!