>백엔드 개발 >Golang >Golang 일반 함수 응용

Golang 일반 함수 응용

WBOY
WBOY원래의
2024-04-29 13:45:01772검색

Go 1.18은 일반 함수를 도입하고 유형 매개변수화를 지원하며 코드 재사용성을 향상시킵니다. 제네릭 함수의 구문은 func 함수명[형 매개변수](입력 매개변수 유형 매개변수) 유형 매개변수이며, 유형 매개변수화된 유형을 입력 유형과 반환 유형으로 사용할 수 있다. 예를 들어 Min[T number] (a, b T) T입니다. 여기서 T는 숫자 유형이어야 하고, a 및 b는 T 유형의 입력 매개변수이며 더 작은 숫자가 반환됩니다. 일반 함수는 코드의 재사용성을 크게 향상시켜 다양한 유형에 적합한 일반 코드를 작성할 수 있게 해줍니다.

Golang 일반 함수 응용

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)。
  • ab 是输入参数,类型为 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)이어야 함을 의미합니다. 🎜🎜ab는 T 유형의 입력 매개변수입니다. 🎜🎜if-else 문은 두 숫자를 비교하여 더 작은 숫자를 반환합니다. 🎜🎜🎜이 함수를 사용하여 다양한 숫자 유형의 최소값을 계산할 수 있습니다. 🎜rrreee🎜🎜결론🎜🎜🎜Go 제네릭은 함수가 유형 유형을 받아들이고 반환할 수 있도록 하여 코드의 재사용성과 유연성을 크게 향상시킵니다. 일반 함수를 사용하면 다양한 유형에서 작동하는 일반 코드를 작성할 수 있습니다. 🎜

위 내용은 Golang 일반 함수 응용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.