Контроль ошибок Голанга по параметрам при вызове функции с отражением - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь вызвать функцию, используя отражение на основе ее имени.

Сначала я восстановил функцию с помощью

f := reflect.ValueOf(s).MethodByName(name)

Я выполняю контроль ошибок в имени функции, проверяя, является ли "f" действительным с

if !f.IsValid() {
    return errors.New("There is no function with that name")
}

И, наконец, я выполняю вызов с

f.Call(inputs)

Моя проблема заключается в том, что входные данные зависят от пользователя, и иногда они могут содержать слишком много параметров, слишком мало или недопустимые типы.

IE:

2019/01/04 16:47:54 http: panic serving [::1]:53662: reflect: Call using string as type int

Как я могу контролировать, что входы действительны перед выполнением вызова? Может быть, в моем методе есть способ восстановить ожидаемые данные и сравнить их с предоставленными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...