Lambdas en Java
Funciones como valores, a través de interfaces de un solo método.
import java.util.function.Function;
import java.util.function.Predicate;
// una lambda implementa una interfaz de un solo método
Function<Integer, Integer> square = x -> x * x;
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(square.apply(9));
System.out.println(isLong.test("keyboard"));
// las referencias a métodos nombran un método existente como implementación
Function<String, Integer> len = String::length;
System.out.println(len.apply("typestar"));
System.out.println(square.andThen(square).apply(2));
Cómo funciona
FunctionyPredicateson las formas que toman casi todas las lambdas.x -> x * ximplementa la interfaz sin una clase.String::lengthnombra un método existente como la implementación.
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 530
- Tokens
- 118
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 83 segundos.
Paso 2 de 3 en Métodos y lambdas; paso 16 de 29 en Fundamentos del lenguaje.