В Go, как вы проверяете, отвечает ли объект методу?Как проверить, имеет ли объект определенный метод?
Например, в Objective-C это может быть достигнуто, выполнив:
if ([obj respondsToSelector:@selector(methodName:)]) { // if method exists
[obj methodName:42]; // call the method
}
Я действительно поощрять людей, чтобы использовать утверждение типа, а не отражают (или, лучше, если у вас нет другой необходимости для имени one-method iface, анонимный интерфейс, указанный в строке, например uraimo). Быстрее, короче, без импорта, без строк в качестве имен методов. – twotwotwo
@twotwotwo согласился. Я думаю, что отражение действительно имеет смысл, если вы собираетесь провести большую проверку, что приведет к принятию решений о том, как себя вести. Если вы просто хотите узнать, можете ли вы вызывать метод, параметр iface намного проще, и если вы используете его только в одном месте, то также будет включено анонимное объявление inline. – evanmcdonnal