golang 제네릭의 사용은 다음 방법으로 대체될 수 있습니다: 1. 인터페이스를 사용하고 인터페이스 유형을 함수 또는 메소드의 매개변수 또는 반환 유형으로 사용하여 다양한 유형에 대한 추상 작업을 수행할 수 있습니다. tools 는 일반적인 동작을 달성하기 위해 특정 유형의 코드를 생성하지만 템플릿 코드는 미리 정의되어야 하며 템플릿 코드는 생성 도구를 통해 특정 유형의 코드로 변환되어야 합니다.
이 튜토리얼의 운영 체제: Windows 10 시스템, Dell G3 컴퓨터.
golang 제네릭의 사용은 다음 방법으로 대체될 수 있습니다:
type MyGeneric interface { DoSomething() } func ProcessGeneric(g MyGeneric) { // 对泛型进行处理 g.DoSomething() }
//go:generate go run gen.go func ProcessGeneric(g GenericType) { // 处理泛型 } // gen.go package main import ( "fmt" "os" "text/template" ) type GenericType int func main() { tmpl := template.Must(template.New("").Parse(` type GenericType {{.}} `)) types := []string{"int", "string", "float64"} for _, t := range types { f, err := os.Create(fmt.Sprintf("generic_%s.go", t)) if err != nil { fmt.Println(err) continue } defer f.Close() tmpl.Execute(f, t) } }
이 예에서는 GenericType 유형의 템플릿을 만들고 코드 생성 도구를 사용하여 다양한 유형(int, string, float64)을 기반으로 특정 코드 파일을 생성합니다.
위 방법은 절충 솔루션이며 공식적으로 지원되는 일반 구현이 아니라는 점에 유의해야 합니다. Go 언어 팀은 제네릭을 개발하는 과정에 있으며 향후 공식적인 제네릭 지원을 시작할 수도 있습니다.
위 내용은 golang 제네릭을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!