typestar

Readonly y callables de primera clase en PHP

Propiedades inmutables y la sintaxis (...) que eleva cualquier callable.

<?php
final class Point {
    public function __construct(
        public readonly float $x,
        public readonly float $y,
    ) {}

    public function length(): float {
        return sqrt($this->x ** 2 + $this->y ** 2);
    }
}

$p = new Point(3.0, 4.0);
echo $p->length(), "\n";

// first-class callable syntax turns any function into a closure
$len = $p->length(...);
echo $len(), "\n";
echo implode(" ", array_map(strtoupper(...), ["read", "only"])), "\n";

Cómo funciona

  1. Las propiedades promovidas readonly se fijan una sola vez en el constructor.
  2. length calcula a partir de $this->x y $this->y, sin mutar nada.
  3. $p->length(...) convierte el método en una clausura para llamar después.
  4. strtoupper(...) entrega una función con nombre directo a array_map.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
426
Tokens
104
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 83 segundos.

Escribe este fragmento

Paso 3 de 3 en Toques modernos; paso 24 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →