Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
|
funcions_lambda [2026/09/21 17:46] enric_mieza_sanchez creat |
funcions_lambda [2026/09/21 18:16] (actual) enric_mieza_sanchez [Funcions Lambda] |
||
|---|---|---|---|
| Línia 5: | Línia 5: | ||
| **Una interfície funcional** és un concepte de Java (formalitzat a Java 8) que **designa una interfície amb un únic mètode abstracte**. Això permet que una expressió lambda, una referència a mètode o una classe anònima la puguin implementar directament, | **Una interfície funcional** és un concepte de Java (formalitzat a Java 8) que **designa una interfície amb un únic mètode abstracte**. Això permet que una expressió lambda, una referència a mètode o una classe anònima la puguin implementar directament, | ||
| - | Actualment les funcions lambda ens resulten molt útils per implementar interfícies funcionals de forma concisa i llegible. | + | Actualment les funcions lambda ens resulten molt útils per implementar interfícies funcionals de forma concisa i llegible. En desenvolupaments amb moltes // |
| {{tag> #Dam #DamMp08 #DamMp08Uf1 # | {{tag> #Dam #DamMp08 #DamMp08Uf1 # | ||
| Característiques principals: | Característiques principals: | ||
| - | * Sintaxi reduïda: Eliminen | + | * Sintaxi reduïda: Eliminen |
| * Funcions anònimes: No necessiten nom | * Funcions anònimes: No necessiten nom | ||
| * Més llegibles: Especialment útils per // | * Més llegibles: Especialment útils per // | ||
| - | Sintaxi bàsica | + | Sintaxi bàsica |
| (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 // | ||
| - | 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' | ||
| <code java> | <code java> | ||
| Línia 35: | Línia 42: | ||
| </ | </ | ||
| - | Si ho implementem en versió lambda ens quedaria | + | Si ho implementem en versió lambda ens quedaria |
| <code java> | <code java> | ||
| Línia 45: | Línia 52: | ||
| }); | }); | ||
| </ | </ | ||
| + | |||
| + | Podem utilitzar punters a '' | ||
| \\ | \\ | ||
| - | ===== Exemples en Kotlin | + | ==== Kotlin ==== |
| - | La definició explícita, sense lambda seria aquesta: | + | La definició explícita, sense lambda, seria aquesta: |
| <code kotlin> | <code kotlin> | ||
| val myButton = findViewById< | val myButton = findViewById< | ||
| Línia 56: | Línia 65: | ||
| myButton.setOnClickListener ( object : View.OnClickListener { | myButton.setOnClickListener ( object : View.OnClickListener { | ||
| override fun onClick(v : View?) { | override fun onClick(v : View?) { | ||
| - | Toast.makeText(this@MainActivity, | + | Toast.makeText(this@MainActivity, |
| } | } | ||
| }) | }) | ||
| </ | </ | ||
| + | La peculiaritat en Kotlin és que una interfície com '' | ||
| + | |||
| + | Si emprem lambda: | ||
| + | |||
| + | <code kotlin> | ||
| + | val myButton = findViewById< | ||
| + | |||
| + | myButton.setOnClickListener { v -> | ||
| + | Toast.makeText(this@MainActivity, | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | En kotlin, fins i tot podriem eliminar el paràmetre '' | ||