В Golang я пытаюсь преобразовать интерфейс в часть байтов.Отладчик ясно показывает, что это слайс байтов.
// Check an Interface's Type.
ifcType = reflect.TypeOf(ifc).Kind()
// Array?
if ifcType == reflect.Slice {
// Get Type of Sub-Elements.
ifcElementType = reflect.TypeOf(ifc).Elem().Kind()
if ifcElementType == reflect.Uint8 {
// Array of Bytes.
// => 'bencode' Byte String.
// Convert the Type.
ba, ok = ifc.([]byte)
if !ok {
return nil, ErrTypeAssertion
}
Когда я проверил, что тип интерфейса - это слайс, а тип подэлемента - Uint8, я делаю утверждение типа.Но по какой-то причине это не удается.Как это может быть?
Снимок экрана отладчика GoLand сразу после того, как 'ok' переменная стала 'false': http://imagehost.cc/image/v4403
Спасибо!