//Lección 9 Kotlin Intermedio: Extensions
private fun extensions(){
val myDate = Date()
println(myDate.customFormat())
println("La longitud del texto fue de -> ${myDate.formatSize} caracteres") //seaccede a ella en forma de propiedad no de funcion
var myDateNudable: Date? = null
println(myDateNudable.customFormat())
}
-----------------------------------
package com.mouredev.kotlinintermedio
import java.text.SimpleDateFormat
import java.util.*
//Primero la clase que vamos a extender Date
//Despues del punto podemos poner el nombre que queremos(customFormat). Estas funciones se añadir a Date
//Esta operacion va a devolver un string
fun Date?.customFormat(): String{
val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ", Locale.getDefault())
return formatter.format(this) //This hace referencia a la clase base
}
//Extension de propiedad
//La clase que queremos extender es Date. La operacion se llama formatSize
//Esta constante va a calcular el string generado por customFormat
val Date.formatSize : Int
get() = this.customFormat().length //El método de acceso a la constante