При type assertion, если вы не хотите получать панику, вы можете получить второе значение типа bool, которое предотвращает панику и говорит вам, найдено ли значение данного типа: var w io.Writer = &bytes.Buffer{} buf, ok := w.(*bytes.Buffer) if !ok { // в w нет *bytes.Buffer } // работа с buf _ = buf Более подробно см. в документации
гадости типо reflect рекомендовать не буду ;)
Обсуждают сегодня