Saltar al contenido

¿Cuáles son las diferencias entre Int e Integer en Scala?

Contamos con tu apoyo para compartir nuestros tutoriales sobre las ciencias informáticas.

Solución:

“¿Cuáles son las diferencias entre Integer e Int?”

Integer es solo un alias para java.lang.Integer. Int es el entero de Scala con capacidades adicionales.

Mirando en Predef.scala puedes ver este alias:

 /** @deprecated use java.lang.Integer instead */
  @deprecated type Integer = java.lang.Integer

Sin embargo, hay una conversión implícita de Int a java.lang.Integer si la necesita, lo que significa que puede usar Int en métodos que toman un Integer.

En cuanto a por qué está en desuso, solo puedo suponer que fue para evitar cualquier confusión sobre con qué tipo de entero estaba trabajando.

Integer se importa de java.lang.Integer y es solo por compatibilidad con Java. Dado que es una clase de Java, por supuesto, no puede tener un método llamado “<". EDITAR: Puede mitigar este problema declarando una conversión implícita de Integer a Int.

 implicit def toInt(in:Integer) = in.intValue()

Sin embargo, seguirá recibiendo una advertencia de desaprobación.

Creo que el problema que está viendo tiene que ver con el boxing / unboxing de tipos de valor y el uso de la clase Integer de Java.

Creo que la respuesta está aquí: boxeo y unboxing en Scala. No hay unboxing implícito en Scala. Tu has definido I como la clase de Java Integer pero en el i> 3, el 3 está siendo tratado y un int.

Sección de Reseñas y Valoraciones

Si piensas que te ha resultado de utilidad nuestro post, sería de mucha ayuda si lo compartieras con el resto desarrolladores y nos ayudes a extender nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *