ursus
03/08/2019, 4:06 PMclass ApiReactionMapper() : (ApiReaction?) -> Reaction?, _(Reaction?) -> ApiReaction?_ {
Pavlo Liapota
03/08/2019, 5:00 PMursus
03/08/2019, 5:06 PMtseisel
03/08/2019, 5:57 PMinterface Mapper<T, U> {
fun transform(element: T): U
fun reverse(element: U): T
}
@JvmName("transform")
operator fun <T, U> Mapper<T, U>.invoke(element: T): U = transform(element)
@JvmName("reverse")
operator fun <T, U> Mapper<T, U>.invoke(element: U): T = reverse(element)
class StringToIntMapper : Mapper<String, Int> {
override fun transform(element: String): Int = element.toInt()
override fun reverse(element: Int): String = element.toString()
}
fun main() {
val mapper = StringToIntMapper()
val asInt = mapper("42")
val asString = mapper(asInt)
println(asString)
}