Go 1.18은 일반 함수를 도입하고 유형 매개변수화를 지원하며 코드 재사용성을 향상시킵니다. 제네릭 함수의 구문은 func 함수명[형 매개변수](입력 매개변수 유형 매개변수) 유형 매개변수이며, 유형 매개변수화된 유형을 입력 유형과 반환 유형으로 사용할 수 있다. 예를 들어 Min[T number] (a, b T) T입니다. 여기서 T는 숫자 유형이어야 하고, a 및 b는 T 유형의 입력 매개변수이며 더 작은 숫자가 반환됩니다. 일반 함수는 코드의 재사용성을 크게 향상시켜 다양한 유형에 적합한 일반 코드를 작성할 수 있게 해줍니다.
Go에서 제네릭의 함수 적용
Go 1.18 이상에서 도입된 제네릭을 사용하면 함수가 유형 매개변수 유형을 허용하고 반환할 수 있습니다. 이는 코드 재사용성과 유연성을 크게 향상시킵니다.
Syntax
일반 함수의 구문은 다음과 같습니다.
func myFunc[T any](input T) T { // ... }
여기서:
myFunc
는 함수 이름입니다. myFunc
是函数名称。T any
是类型参数。它可以是任何类型,包括自定义类型。input
是带有类型参数化类型的输入参数。T
是带有类型参数化类型的返回类型。实战案例
假设我们想创建一个函数来计算两个数字的最小值。泛型函数可以让我们用任何数字类型来表示这两个数字,而无需创建多个具有特定类型签名的函数。
我们可以编写如下泛型函数:
func Min[T number](a, b T) T { if a < b { return a } return b }
其中:
T number
表示类型参数 T 必须是 numeric 类型(例如 int、float64)。a
和 b
是输入参数,类型为 T。if-else
T any
는 유형 매개변수입니다. 사용자 정의 유형을 포함하여 모든 유형이 될 수 있습니다. input
은 유형 매개변수화된 유형이 있는 입력 매개변수입니다.
T
는 유형 매개변수 유형이 있는 반환 유형입니다.
실용 사례
🎜🎜두 숫자의 최소값을 계산하는 함수를 만들고 싶다고 가정해 보겠습니다. 일반 함수를 사용하면 특정 유형 시그니처를 사용하여 여러 함수를 만들 필요 없이 모든 숫자 유형으로 이 두 숫자를 표현할 수 있습니다. 🎜🎜다음 일반 함수를 작성할 수 있습니다. 🎜var a int8 = 10 var b int16 = 20 min := Min(a, b) // 类型推断为 int16 fmt.Println(min) // 输出:10🎜여기서: 🎜🎜🎜
T 숫자
는 유형 매개변수 T가 숫자 유형(예: int, float64)이어야 함을 의미합니다. 🎜🎜a
및 b
는 T 유형의 입력 매개변수입니다. 🎜🎜if-else
문은 두 숫자를 비교하여 더 작은 숫자를 반환합니다. 🎜🎜🎜이 함수를 사용하여 다양한 숫자 유형의 최소값을 계산할 수 있습니다. 🎜rrreee🎜🎜결론🎜🎜🎜Go 제네릭은 함수가 유형 유형을 받아들이고 반환할 수 있도록 하여 코드의 재사용성과 유연성을 크게 향상시킵니다. 일반 함수를 사용하면 다양한 유형에서 작동하는 일반 코드를 작성할 수 있습니다. 🎜위 내용은 Golang 일반 함수 응용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!