En este post te voy a explicar como hacer una conversión implícita de componentes en Scala.
Primeros pasos.
Las conversiones o casteos implícitos son métodos que nos permiten convertir un objeto en otro. De seguro los has usado cuando trabajas con tipos primitivos. Cuando conviertes un double en entero, o un short en un int, se ejecuta un método que ejecuta esa conversión.
Cuando trabajas con objetos personalizados, si quieres convertir un objeto en otro automáticamente, tienes que crear estos métodos de conversión. En Scala estos métodos se escriben en el compainion object empleando la palabra reservada implicit. A continuación te muestro:
import scala.language.implicitConversions | |
case class Point (x:Double = 0, y:Double = 0) | |
object Point { | |
//Implicit conversion from tuple to Point | |
implicit def toPoint(tuple:(Double,Double)):Point = { | |
Point(tuple._1, tuple._2) | |
} | |
//implicit conversion from Point to tuple. | |
implicit def toTuple(point:Point): (Double, Double) = { | |
(point.x, point.y) | |
} | |
} | |
//Converting point to tuple | |
var pointExample = Point(10.1, 20.2) | |
var tupleResult:(Double, Double) = pointExample | |
println(tupleResult) | |
//Converting tuple to point | |
var tupleExample = (30.3, 40.4) | |
var pointResult:Point = tupleExample | |
println(pointResult) |
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20