Eu não sei se Python é melhor ( mas nunca vou torcá-lo por Java), mas sei que em Python 1 sempre é igual a 1:
>>> valor1 = 1
>>> valor2 = 1
>>> valor1 == valor2
True
em Java 5 isso também funcionaria. Mas se comparássemos um número float com um inteiro o que aconteceria?
Em muitas linguagens nem é permitido a comparação de números de tipos diferentes mas Java e Python permitem. Em Python:
>>> valor1 = 1
>>> valor2 = 1.0
>>> type(valor1)
>>> type(valor2)
>>> valor1 == valor2
True
mas quando comparamos em Java, nem sempre a resposta é verdadeira. Veja a notícia Em Java 5, 0 não é sempre igual a 0
Bom em Python 0 sempre é igual a 0, 1 igual a 1 e assim por diante...
eu ein!!!
2 comentários:
Hey Pyman.. vc sabe dizer pq isso acontece no Java? a representação talvez ele faça comparação binária dos tipos, e por os tipos serem representados binariamente diferentes acontece isso, ou eu tou viajando???
Bom Helder,
realmente ele faz a comparação binária , mas os integers e floats em java extendem da mesma classe ou seja, os dois são numeros. A comparação mesmo se tratando de numeros 'binariamente' diferentes, a API Java deveria reconhece-los como iguais, como acontece em Python ou Ruby onde typos de dados são objetos tambem.
Realmente, é falha da virtual java machine...
Postar um comentário