Has identificado un vacío en el mercado de las redes sociales para publicaciones muy, muy cortas. Ahora que Twitter permite publicaciones de 280 caracteres, las personas que quieren actualizaciones rápidas en redes sociales no están bien atendidas. Decides crear tu propia red social.
Para que tu producto llame la atención, lo llevas al extremo y solo permites publicaciones de 5 caracteres o menos. Cualquier publicación de más de 5 caracteres debe truncarse a 5.
Para que tus usuarios se expresen plenamente, permites emoji y otros caracteres Unicode.
La tarea es truncar los strings de entrada a 5 caracteres.
El texto almacenado digitalmente tiene que convertirse en una serie de bytes. Hay 3 formas comunes de asignar caracteres a bytes.
UTF-8 y UTF-16 son ambas codificaciones Unicode, lo que significa que son capaces de representar una enorme variedad de caracteres, entre ellos:
UTF-8 y UTF-16 son ambas codificaciones de longitud variable, lo que significa que distintos caracteres ocupan distintas cantidades de espacio.
Considera la letra «a» y el emoji «😛». En UTF-16 la letra ocupa 2 bytes, pero el emoji ocupa 4 bytes.
El truco de este ejercicio es usar una API diseñada en torno a caracteres Unicode (puntos de código) en lugar de unidades de código Unicode.
Los strings del código fuente de Go (y los strings de las pruebas unitarias) son UTF-8.
Los strings contienen bytes que representan runes.
En la mayoría de los casos en Go, una «unidad de código» es un byte y un «punto de código» es un rune.
Consulta Strings, bytes, runes and characters in Go para más detalles.
Regístrate en Exercism para aprender y dominar Go con 35 conceptos167 ejercicios y mentoría humana real, todo gratis.