Implement print() for interface values

Этот коммит содержится в:
Ayke van Laethem 2018-08-30 02:20:36 +02:00
родитель 25344bc08f
коммит d930a9ba16
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: E97FF5335DFDFDED

Просмотреть файл

@ -34,6 +34,14 @@ func printint8(n int8) {
}
}
func printuint16(n uint16) {
printuint32(uint32(n))
}
func printint16(n uint16) {
printint32(int32(n))
}
func printuint32(n uint32) {
// TODO: don't recurse, but still be compact (and don't divide/mod
// more than necessary).
@ -84,7 +92,13 @@ func printitf(msg interface{}) {
case string:
print(msg)
default:
print("???")
// cast to underlying type
itf := *(*_interface)(unsafe.Pointer(&msg))
putchar('(')
print(itf.typecode)
putchar(':')
print(itf.value)
putchar(')')
}
}