Go의 Generics를 사용하면 여러 데이터 유형에서 작동하는 코드를 만들 수 있습니다. 구문은 type name[T any] struct { ... }입니다. 여기서 T는 일반 매개변수입니다. func CopySlice[T any](dst, src []T) 함수를 사용하여 슬라이스를 복사하는 예가 표시됩니다. 제네릭의 이점에는 코드 재사용, 유형 변환 감소, 유형 안전성이 포함됩니다.
Go에서 제네릭을 사용하여 언어 기능 확장
Generics는 다양한 유형의 데이터와 작동하는 코드를 생성할 수 있는 프로그래밍 언어 기능입니다. Go 1.18 이상에서는 제네릭이 지원됩니다. 이 기사에서는 제네릭을 사용하여 Go 언어에 새로운 기능을 추가하는 방법을 보여줍니다.
Syntax
일반 유형은 다음과 같이 정의됩니다.
type name[T any] struct { // ... }
위치:
name
: 유형 이름 name
:类型名称T any
:泛型类型参数实战案例
让我们以创建一个具有复制任意类型切片的泛型函数为例:
func CopySlice[T any](dst, src []T) { n := len(src) if cap(dst) < n { dst = make([]T, n) } copy(dst, src) }
在这个函数中:
[T any]
表示函数接受任意类型数据的切片copy(dst, src)
复制 src
切片中的元素到 dst
切片使用方法
现在您可以使用我们创建的 CopySlice
T any
: 일반 유형 매개변수실용 사례
intSlice := []int{1, 2, 3} floatSlice := []float64{1.1, 2.2, 3.3} newIntSlice := make([]int, len(intSlice)) CopySlice(newIntSlice, intSlice) newFloatSlice := make([]float64, len(floatSlice)) CopySlice(newFloatSlice, floatSlice)
[T any]
는 다음 함수를 의미합니다. 모든 유형의 데이터 슬라이스를 허용합니다copy(dst, src)
src
슬라이스의 요소를 dst
Slice 이제 우리가 만든 CopySlice
기능을 사용할 수 있습니다. rrreee
위 내용은 제네릭을 사용하여 golang에 새로운 기능을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!