bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


funcions_lambda

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
funcions_lambda [2026/09/21 17:54]
enric_mieza_sanchez [Funcions Lambda]
funcions_lambda [2026/09/21 18:16] (actual)
enric_mieza_sanchez [Funcions Lambda]
Línia 14: Línia 14:
   * Més llegibles: Especialment útils per //callbacks// i //event handlers//   * Més llegibles: Especialment útils per //callbacks// i //event handlers//
  
-Sintaxi bàsica+Sintaxi bàsica en Java:
   (paràmetres) -> { cos de la funció }   (paràmetres) -> { cos de la funció }
 +
 +Sintaxi bàsica en Kotlin:
 +  { paràmetres -> cos de la funció }
  
 \\ \\
  
-===== Exemples en Java i Android =====+===== Exemples en Android ===== 
 + 
 +Per implementar una //callback// en un botó ens cal crear un objecte ''View.OnClickListener'' i particularitzar (sobreescrivint) la funció ''onClick'', que és l'únic mètode abstracte que té. Per tant, la lambda, sense explicitar-ho farà referència a aquest mètode. 
  
-Aquest seria el codi explícit per a Android en Java:+==== Java ==== 
 +Aquest seria el codi explícit per a Android en Java, creant l'objecte ''OnClickListener'' i sobreescrivint la seva funció ''onClick'':
  
 <code java> <code java>
Línia 35: Línia 42:
 </code> </code>
  
-Si ho implementem en versió lambda ens quedaria així:+Si ho implementem en versió lambda ens quedaria molt mes concís:
  
 <code java> <code java>
Línia 45: Línia 52:
 }); });
 </code> </code>
 +
 +Podem utilitzar punters a ''MainActivity'' (''MainActivity.this'') sempre que implementem aquest codi a dins d'ella, que és el més habitual. Aquest codi en concret sol estar dins el mètode ''MainActivity.onCreate''.
  
 \\ \\
  
-===== Exemples en Kotlin i Android =====+==== Kotlin ====
  
-La definició explícita, sense lambda seria aquesta:+La definició explícita, sense lambdaseria aquesta:
 <code kotlin> <code kotlin>
 val myButton = findViewById<Button>(R.id.my_button) val myButton = findViewById<Button>(R.id.my_button)
Línia 61: Línia 70:
 </code> </code>
  
-I emprant lambda:+La peculiaritat en Kotlin és que una interfície com ''View.OnClickListener'' s'instancia amb ''object : View.OnClickListener'', sense parèntesis (com sí que es fa en Java). 
 + 
 +Si emprem lambda:
  
 <code kotlin> <code kotlin>
Línia 70: Línia 81:
 } }
 </code> </code>
 +
 +En kotlin, fins i tot podriem eliminar el paràmetre ''v ->'' si no el fem servir (com en aquest cas).
  
funcions_lambda.1790013296.txt.gz · Darrera modificació: 2026/09/21 17:54 per enric_mieza_sanchez