#Si ya el string es por debajo un Vecu8

1 messages · Page 1 of 1 (latest)

cosmic cove
#

Creo que no termino de entender tu punto TBH. Lo que intento es convertir esto : String = "11" a esto : u8 = 11 pero me estás diciendo que realmente lo convierte a : [u8;2] = [49, 49], estoy en lo correcto?

upbeat moth
#

Al trabajar con ASCII es mucho mejor manejarlo a nivel bytes o char sin adelantarse, cada char y byte tiene su razón, por mas que en el string puedas ver un 11 eso es a tu interpretación, el buffer contiene dos bytes que en ascii simbolizan un 1

#

Yo el enfoque de la iteracion lo cambiaría, en lugar de un while usar un for, iterar sobre lo que tu creas conveniente (a mi parecer es mejor iterar sobre un string.as_bytes()) e ir manejando a nivel de bytes el ascii challenge

#

Por que while y no for? Porque el while no te hace un intoIterator, por lo tanto tu al iterar una estructura de datos como el string tienes que handlear el Item, en cambio con un for char o un for byte ya sabes que iteras sobre string usando un char o un u8 dependiendo de qué elijas

cosmic cove
#

Osea, estaría conviertiendo el : String = "99" a :[u8; 2] = [57, 57], pero como me sugieres utilizar el for estaría iterando cada número 1 a 1 pero eventualmente quiero convertir ese "99" original en una "c"

#

Considerando que el input original es un String de códigos ascii bien pegaditos (like "123432432") y necesito poder validar de alguna manera que lo que quiero convertir es un código de dos o tres dígitos

#

Pero con el for estaría iterando el input letra por letra

#

Me estoy perdiendo de algo xDD

upbeat moth
oak imp
#

@upbeat moth Entonces se compararia el valor de los bytes como vec y no la cadena verdad?

upbeat moth
upbeat moth
#

Y cuando comparan strings en sí lo que se compara es b"some string" == b"other string" dado que el procesador no tiene la capacidad de comparar letras, solo nums

#

Ya había avisado que las strings eran un dolor de cabeza no?

oak imp
#

@upbeat moth Un dolor de cabeza fascinante

#

Me exploto la cabeza 3 veces

upbeat moth
#

Y a que va todo esto? Que no es lo mismo hacer un "11".parse::<u8>() que un "1".parse::<u8>() dos veces, a nivel de bytes y ascii en el primero te comiste 2 bytes para armar una string, en el segundo solo 1, que a fin de cuentas es lo mismo en caso ASCII? si porque por default son u8, pero en caso de UTF 16? no sería lo mismo

#

Las UTF 16 ocupan dos bytes, y el encode o decode de las mismas si tu te adelantas la iteracion te puede acomplejar en algunos casos, en los casos de tener strings o buffers con distintos datatypes o formatos puede generar problemas

cosmic cove
#

You're right, creo que me expliqué mal.
Recuerda que el challenge 2 lo que te da de input son números o código ascii decimales (aunque como String) y el objetivo es convertir esos números en letras para descifrar el mensaje, entonces según entiendo tu sugerencia es convertir esos códigos acsii nuevamente en... códigos xD

#

Y ahí es donde me explota la cabeza

oak imp
#

@cosmic cove y esos codigos en letras thisisfine

cosmic cove
#

Me interesaría ver tu solución cuando lo tengas listo, si lo veo entendería xd

upbeat moth
#

Pero en fin, tu OneLine killer en este caso sirve? Si. Esta bien? Hombre, adelantarte en el encode/decode nunca está bien, o el salirte, si dice ascii por default es UTF-8 simplificando la comparativa, no hay motivo por el cual adjuntar 2 o 3 bytes y tratar de parsearlos a u8 porque entran dentro del mismo en algunos casos xD

upbeat moth
#

Obviamente la clase la exportó con protocolos de red PepeGiggle así la puedo enviar entre sys pero es para un proyecto de automatización de Drivers en instalación de Windows, así que es algo small/mid size, si no me toma todo el día la implementación MVP les doy el challenge este

oak imp
#

Okey, gracias por la explicación @upbeat moth

cosmic cove
#

Por mi parte puedo esperar, tampoco te presiones

oak imp
#

Si igual tomate tu tiempo, hechando a perder se aprende dice el dicho

upbeat moth
#

Pero bueno, el challege pasa porque en sí este code es ascii y no tiene otro tipo de chars o datatypes dentro xD Pero no se adelanten, iteren uno por uno y hagan clean code, los oneliners están bien para cosas entendibles y sin unwraps thisisfine

#

Porque donde el oneliner tenga 2 o más unwraps y el error les salga en esa línea entenderán el porque se usa early error handling o guards thisisfine

oak imp
#

@upbeat moth Errores, warning y mas warnings nos esperan thisisfine

cosmic cove
#

Well un placer, debería dormir