3
(반사 패키지를 사용하여) 메소드의 이름으로 다른 패키지의 메소드를 호출하려고하지만 정확히 수행하는 방법이 확실하지 않습니다.다른 패키지의 이름으로 메소드를 호출합니까?
지금까지 IS 노력하고있어,
reflect.ValueOf(controller).MethodByName(action_name).Call()
모든 아이디어 (컨트롤러가 다른 패키지가)?
(반사 패키지를 사용하여) 메소드의 이름으로 다른 패키지의 메소드를 호출하려고하지만 정확히 수행하는 방법이 확실하지 않습니다.다른 패키지의 이름으로 메소드를 호출합니까?
지금까지 IS 노력하고있어,
reflect.ValueOf(controller).MethodByName(action_name).Call()
모든 아이디어 (컨트롤러가 다른 패키지가)?
pkg/reflect
을 사용하여이 작업을 수행 할 수 없습니다. 이를 위해 패키지는 일류 시민이어야하며, 그렇지 않은 시민이 필요합니다.
func Foo() { println("foo?") }
m := map[string]interface{}{
"foo": Foo
}
f := m["foo"].(func())
f()
가 나는 그것이 가능하다고 생각하지 않습니다
가장 좋은 방법은 맵의 기능을 당신이
map[string]interface{}
에 액세스 할 기능을 저장하고 를 검색하는 것입니다. https://groups.google.com/forum/#!topic/golang-nuts/56pdjuF0dXo – lukad