bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


kotlin

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
kotlin [2024/12/30 00:16]
enric_mieza_sanchez
kotlin [2026/09/23 14:42] (actual)
enric_mieza_sanchez
Línia 126: Línia 126:
 </code> </code>
 </WRAP> </WRAP>
 +
 +Si estem en codi compilat, ens donarà un error en temps de compilació (menys greu que un error en //runtime//) i ens obligarà a fer servir  un altre mecanisme.
  
 \\ \\
Línia 218: Línia 220:
  
 \\ \\
 +
 +===== Objectes =====
 +
 +Els constructors es defineixen amb la paraula ''constructor''.
 +
 +Les **variables i funcions estàtiques** dins de classes son variables que estan definides abans d'instanciar cap objecte. Es poden utilitzar, entre d'altres usos, per a implementar patrons de com Factory o Singleton.
 +
 +En Kotlin es defineixen dins l'anomenat **companion object**, per exemple:
 +
 +<code kotlin>
 +class MyClass {
 +    private val a = 1
 +    
 +    constructor(valor: Int) {
 +        this.a = valor
 +    }
 +
 +    companion object {
 +        private val myStaticVar = 10
 +        
 +        fun myStaticFunction() {
 +            // ...
 +        }        
 +    }
 +}
 +</code>
 +
 +\\
 +
 +===== Llistes i Arrays =====
 +
 +Per inicialitzar una llista i iterar-la es pot fer de la següent manera:
 +
 +<code kotlin>
 +val llista = mutableListOf("a", "b", "c")
 +llista.add("d")  // Ara: ["a", "b", "c", "d"]
 +for( elem in llista ) {
 +    println( elem )
 +}
 +</code>
 +
 +\\
 +
 +===== this i this@class =====
 +
 +El ''this'' (referència a l'actual objecte) funciona igual que en Java.
 +
 +Si volem apuntar a un altre objecte aniuat ho podem fer amb @
 +
 +Si en Java teniem:
 +
 +<code java>
 +class Fora {
 +    class Dintre {        
 +        private void fes_algo() {
 +            //...
 +            crida_externa( Fora.this );
 +            //...
 +        }
 +}
 +</code>
 +
 +En Kotlin tindrem:
 +
 +<code kotlin>
 +class Fora {
 +    class Dintre {        
 +        private fun fes_algo() {
 +            //...
 +            crida_externa( this@Fora );
 +            //...
 +        }
 +}
 +</code>
 +
 +El cas més típic en Android és: ''this@MainActivity''.
 +
 +\\
 +
 +===== apply =====
 +
 +El mètode apply és una funció d’àmbit (scope function) de la llibreria estàndard de Kotlin. Serveix per configurar un objecte just després de crear-lo, sense necessitat de repetir el seu nom a cada línia. Molt útil per compactar codi.
 +
 +<code kotlin>
 +val paint = Paint().apply {
 +    color = Color.RED
 +    strokeWidth = 5f
 +}
 +</code>
 +
  
kotlin.1735517782.txt.gz · Darrera modificació: 2024/12/30 00:16 per enric_mieza_sanchez