함수를 문자열 키에 매핑하는 것은 Go에서 메소드를 구성하고 선택하는 데 유용한 도구가 될 수 있습니다. 그러나 일반적인 장애물은 올바른 구문과 입력을 보장하는 것입니다. Go에서 함수 맵을 효과적으로 정의하고 활용하는 방법을 살펴보겠습니다.
제공된 코드는 함수를 가리키는 문자열 키를 사용하여 맵을 생성하려고 시도합니다. 그러나 m := map[string] func {...}에 사용된 구문은 올바르지 않습니다. 함수 포인터 맵을 정의하기 위한 올바른 구문은 m := map[string]interface{}{...}입니다.
또한, 맵 키에 작은따옴표 ''를 사용하는 것은 유효하지 않습니다. 문자열 키에는 큰따옴표 ""를 사용해야 합니다.
실제 예제를 보여주기 위해 다음 코드를 고려하세요.
package main import "fmt" func f(p string) { fmt.Println("function f parameter:", p) } func g(p string, q int) { fmt.Println("function g parameters:", p, q) } func main() { m := map[string]interface{}{ "f": f, "g": g, } for k, v := range m { switch k { case "f": v.(func(string))("astring") case "g": v.(func(string, int))("astring", 42) } } }
여기서 맵 m이 생성됩니다. 여기서 각 키는 문자열이며 해당 값은 함수 포인터입니다. switch 문은 원하는 매개변수로 함수를 호출하기 전에 키를 확인하고 값을 적절한 함수 유형으로 캐스팅합니다. 이 접근 방식을 사용하면 제공된 키를 기반으로 동적 기능 선택 및 실행이 가능합니다.
위 내용은 Go에서 함수 맵을 올바르게 정의하고 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!