¿Alguien puede explicar por qué en el primer ejemplo a continuación, la comparación devuelve falso ?
En el segundo ejemplo, puede ver que simplemente cambiando el primer carácter devolverá verdadero en su lugar.
¿Qué me estoy perdiendo?
(1 != "1f9bb589-434d-46ce-9b0d-fe101619ce6f") -> bool(false)contra
(1 != "2f9bb589-434d-46ce-9b0d-fe101619ce6f") -> bool(true)El operador != realiza una comparación con malabarismo de tipos. Dado que el primer operando es un int, la comparación se realiza numéricamente y el segundo operando también se convierte en un int. Esto significa que la primera secuencia de dígitos se toma y se convierte en un int, y todo lo que sigue se descarta. En el primer ejemplo, la primera secuencia de dígitos es "1", por lo que obtienes 1 != 1 , que obviamente es falso. En el segundo ejemplo, obtienes de manera similar 1 != 2 , lo que obviamente es cierto.