Go에서 반환 또는 매개변수 유형에 따라 함수 선택
Go에서는 반환 또는 매개변수에 따라 프로그래밍 방식으로 함수를 선택하는 것이 가능합니다. 유형. 이는 함수 모음이 있고 특정 기준을 충족하는 함수만 필터링해야 할 때 유용할 수 있습니다.
Go 표준 라이브러리는 유형을 조작하고 검사할 수 있는 Reflect 패키지를 제공합니다. 유형에 따라 함수를 선택하려면 다음 단계를 사용할 수 있습니다.
다음은 int를 형식으로 사용하는 함수를 선택하는 방법을 보여주는 예입니다. 매개변수 또는 int 반환:
<code class="go">package main import ( "fmt" "reflect" ) func main() { funcs := make([]interface{}, 3, 3) // Using interface{} to allow any kind of function funcs[0] = func(a int) int { return a + 1 } // Good: takes int, returns int funcs[1] = func(a string) int { return len(a) } // Good: returns int funcs[2] = func(a string) string { return ":(" } // Bad: returns string for _, fi := range funcs { f := reflect.ValueOf(fi) functype := f.Type() good := false for i := 0; i < functype.NumIn(); i++ { if functype.In(i).String() == "int" { good = true // Yes, there is an int input break } } for i := 0; i < functype.NumOut(); i++ { if functype.Out(i).String() == "int" { good = true // Yes, there is an int output break } } if good { fmt.Println(f) } } }</code>
이 코드는 Reflect를 사용하여 함수 유형을 검사하고 원하는 기준을 충족하는 함수를 필터링하는 방법을 보여줍니다. int를 입력으로 사용하거나 int를 출력으로 반환하는 함수를 선택하는 방법을 보여줍니다.
위 내용은 Reflect 패키지를 사용하여 반환 또는 매개변수 유형을 기반으로 Go에서 함수를 프로그래밍 방식으로 선택하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!