> 백엔드 개발 > Golang > Generics는 Go에서 진정한 Generic 기능을 어떻게 활성화합니까?

Generics는 Go에서 진정한 Generic 기능을 어떻게 활성화합니까?

DDD
풀어 주다: 2024-12-18 15:08:13
원래의
403명이 탐색했습니다.

How Do Generics Enable True Generic Functions in Go?

Go의 일반 함수

Go의 인터페이스 유형은 구현된 메소드 없이도 모든 유형을 보유할 수 있어 마치 일반적인 함수의 형태. 그러나 이는 사실이 아니다. 컴파일 타임에 유형을 알 수 없는 진정한 제네릭 함수는 Go 버전 1.18 이전에서는 지원되지 않았습니다.

Go 1.18에서는 제네릭이 도입되어 제네릭 함수 생성이 가능해졌습니다. 일반 함수는 func 키워드와 대괄호로 묶인 유형 매개변수를 사용하여 정의할 수 있습니다. 유형 매개변수는 일반 함수에서 허용하는 유형을 지정합니다. 예:

func Print[T any](s []T) {
    for _, v := range s {
        fmt.Print(v)
    }
}
로그인 후 복사

이 예에서 T는 모든 유형을 나타낼 수 있는 유형 매개변수입니다. Print 함수는 []T 유형의 슬라이스를 허용하고 슬라이스의 요소를 인쇄합니다.

일반 함수를 사용하려면 원하는 유형의 슬라이스를 인수로 전달할 수 있습니다.

// Passing a list of strings
Print([]string{"Hello, ", "world\n"})

// Passing a list of integers
Print([]int{1, 2})
로그인 후 복사

프로그램의 출력은 다음과 같습니다.

Hello, world
12
로그인 후 복사

일반 함수는 다른 유형에서 작동할 수 있는 코드를 작성하는 간결하고 안전한 방법을 제공합니다. 유형 안전성을 희생합니다.

위 내용은 Generics는 Go에서 진정한 Generic 기능을 어떻게 활성화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿