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/29 23:56]
enric_mieza_sanchez
kotlin [2025/01/07 19:10] (actual)
enric_mieza_sanchez
Línia 90: Línia 90:
 ===== Nullable i Non-Nullable Objects ===== ===== Nullable i Non-Nullable Objects =====
  
-Kotlin intenta evitar errors de Java en //runtime// com el típic ''null pointer exception'', quan intentem efectuar una acció sobre una variable que no ha estat inicialitzada. Així, s'etiqueten adientment els tipus com a //nullable// o //not-nullable//. Si emprem un //not-nullable// podrem efectuar accions segures sobre l'objecte i el compilador ens pot advertir de possibles problemes del //runtime//.+Kotlin intenta evitar errors de Java en //runtime// com el típic ''null pointer exception'', quan intentem efectuar una acció sobre una variable que no ha estat inicialitzada. Així, s'etiqueten adientment els tipus com a //nullable// o //non-nullable//. Si emprem un //non-nullable// podrem efectuar accions segures sobre l'objecte.
  
 <WRAP info> <WRAP info>
-''Int'' : //not-nullable// vs ''Int?'' : //nullable//.+''Int'' : //non-nullable// vs ''Int?'' : //nullable//.
 </WRAP> </WRAP>
  
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 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>
 >>> var a : Int? = 20 >>> var a : Int? = 20
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.1735516569.txt.gz · Darrera modificació: 2024/12/29 23:56 per enric_mieza_sanchez