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:01]
enric_mieza_sanchez
kotlin [2025/01/07 19:10] (actual)
enric_mieza_sanchez
Línia 117: Línia 117:
 Disposar de variables //non-nullable// ens porta a certs "problemes": el compilador no estarà segur de sumar un ''Int'' amb un ''Int?'' , ja que el segon pot ser ''null'': Disposar de variables //non-nullable// ens porta a certs "problemes": el compilador no estarà segur de sumar un ''Int'' amb un ''Int?'' , ja que el segon pot ser ''null'':
  
 +<WRAP prewrap>
 <code kotlin> <code kotlin>
 >>> var a : Int? = 20 >>> var a : Int? = 20
Línia 124: Línia 125:
  ^  ^
 </code> </code>
 +</WRAP>
  
 \\ \\
  
-===== Safe call =====+===== Safe call ?. =====
 Com es pot veure, l'operador ''+'' acaba cridant la funció ''.plus()'' . Es pot fer una crida segura o //safe call// amb ''?.plus()'' per fer la suma: Com es pot veure, l'operador ''+'' acaba cridant la funció ''.plus()'' . Es pot fer una crida segura o //safe call// amb ''?.plus()'' per fer la suma:
 <code kotlin> <code kotlin>
Línia 200: Línia 202:
  
 ===== lateinit ===== ===== lateinit =====
-''lateinit'' ens permet +''lateinit'' **permet no inicialitzar una variable i que el compilador no doni error**. Això sí, si després es fa servir i no s'ha inicialitzat, podríem tenir un error de //runtime//.
  
 Per exemple: Per exemple:
Línia 210: Línia 212:
 } }
 </code> </code>
 +
 +<WRAP tip>
 +''lateinit'' pot ser molt útil per definit variables de classe en mètodes d'inicialització, com el típic ''onCreate()'' d'una ''Activity'' d'Android.
 +</WRAP>
  
 \\ \\
 +
 +====== 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>
  
kotlin.1735516908.txt.gz · Darrera modificació: 2024/12/30 00:01 per enric_mieza_sanchez