名前付きタプル
タプルを値の並び順ではなく、文字列の名前に置き換えたもの。
#英語: named tuple
Psalmのドキュメント(Array types - Documentation)では Makeshift Structs (間に合わせの構造体)と呼ばれている
PHPの配列で例えると
code:php
$value = 150; // 値段
$stock = 12; // 在庫
// 配列の順番に意味がある
return $value, $stock;
↑を
code:php
return 'value' => $value, 'stock' => $stock;
こう置き換えたもの
さらにcompact関数を使って短縮できる
code:php
return compact('value', 'stock');
// 'value' => $value, 'stock' => $stock と書くのと同じ
compact()はローカル変数を名前付きタプルに置き換えたものと考えることができる
PHP 8.0では関数呼び出しを名前付き引数として指定する記法が追加された
タプルのページで関数の引数は順番に依存するタプルであることを説明した
code:php
array_pad(array $array, int $length, mixed $value): array
従来は関数呼び出しでは引数の順番を厳密に守る必要があった
code:php
$result = array_pad($a, 10, "");
名前付き引数では引数の名前を付けることで順番を入れ替えることができる
code:php
$result = array_pad(value: "", array: $a, length: 10);
これもタプルを名前付きタプルに置き換える機能だと考えられる