Предположим, что у меня есть два пакета, какКак вызвать метод из другого пакета от имени метода строки в Go
-a
-b
есть некоторые методы, как это
func TestOne() { //something }
func TestTwo() { //something }
Мне нужно позвонить в пакет a методы из пакета b но только line метод name. Например, я получаю строку «TestOne» и вызывает метод TestOne(). Как я могу это сделать.
Редактировать: Я прочитал о reflect
. но reflect
нуждается в структуре и функциях , являющихся членами этой структуры. Что делать, если мои функции не являются членами структуры? просто простые методы в пакете. и вызывающие методы и вызываемые методы находятся в разных пакетах. Затем?
NB. Могут быть и некоторые методы, которые также имеют параметры.
Связанные/возможно дубликат [Golang: указатель на функцию из строки (имя функции, в)] (http://stackoverflow.com/questions/18017979/golang-pointer-to-function -from-string-functions-name) – icza
@icza Я прочитал этот вопрос и ответ. Но их решение, которое, по их словам, использовало, отражает. И отражают, что структура и функции являются членами этой структуры. Что делать, если мои функции не являются членами структуры? просто простые методы в пакете. и вызывающие методы и вызываемые методы находятся в разных пакетах. Затем? – sadlil
Тогда ответ «нет», вы не можете этого сделать без чего-то вроде предварительно заполненной карты имен-функций, как видно из ответа @ LightWeight. – icza