Buscar este blog

Mostrando entradas con la etiqueta class. Mostrar todas las entradas
Mostrando entradas con la etiqueta class. Mostrar todas las entradas

miércoles, 9 de junio de 2021

Extensiones - extensions

 //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

viernes, 4 de junio de 2021

Data classes

 //Lección 6 Kotlin Intermedio; Data classes

private fun dataClasses(){
val rene = Worker("Rene",36,"Programador")
rene.lastWork = "Predicador"

//Funciones que nos permite el data class
//equals & hashCode, para compara objetos
if (rene.equals("SARA")){
println("Son iguales")
} else {
println("No son iguales")
}
//toString
println(rene.toString()) //Imprime todos los datos
//Copy
val rene2 = rene.copy(age = 30) //La opcion de copiar te permite modificar algunos datos
println(rene2.toString()) //Imprime todos los datos

//component - Funcion que se encarga de descomponer en estructuras mas sencillas
val (name, age) = rene
println(name)
println(age)
}

-------------------

data class Worker(val name:String = "", val age:Int = 0, val work:String = ""){
var lastWork:String = "" //Esto no será obligatorio

}

Cuando no reconoce los elementos el MainActivity

  If you are using Android Studio 4.1, you need to add the description to build.gradle (Module: .app). Si está utilizando Android Studio 4.1...