Ответ 1
Простая опция - объявить интерфейс только с помощью метода, который вы хотите проверить, а затем сделать тип assert против вашего типа, например:
i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
// inline iface delcataration example
i, ok = myInstance.(interface{F()})
Вероятно, вы захотите использовать пакет reflect
, если вы планируете сделать что-то слишком сумасшедшее в своем типе; http://golang.org/pkg/reflect
st := reflect.TypeOf(myInstance)
m, ok := st.MethodByName("F")
if !ok {
// method doesn't exist
}
// do something like invoke m