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 중국어 웹사이트의 기타 관련 기사를 참조하세요!