定義
集合管道是將一些計算轉化為一系列操作,每個操作的輸出結果都是一個集合,同時該結果作為下一個操作的輸入。在函式程式設計中,通常會透過一系列更小的模組化函式或運算來對複雜運算進行排序,這種方式被稱為函式組合。
結構中包含的角色
Collection 集合物件
最小可表達程式碼 - Laravel的Collection類
class Collection
{
protected $items = [];
public function __construct($items = [])
{
$this->items = $this->getArrayableItems($items);
}
public function all()
{
return $this->items;
}
public function merge($items)
{
return new static(array_merge($this->items, $this->getArrayableItems($items)));
}
public function intersect($items)
{
return new static(array_intersect($this->items, $this->getArrayableItems($items)));
}
public function diff($items)
{
return new static(array_diff($this->items, $this->getArrayableItems($items)));
}
protected function getArrayableItems($items)
{
if (is_array($items)) {
return $items;
} elseif ($items instanceof self) {
return $items->all();
}
return (array) $items;
}
}
$data = (new Collection([1,2,3]))
->merge([4,5])
->diff([5,6,7])
->intersect([3,4,5,6])
->all();
var_dump($data);
何時使用
- 當要執行一系列操作時。
- 在程式碼中使用大量語句時。
- 在程式碼中使用大量迴圈時。
實際應用場景
- Laravel的集合
本作品採用《CC 協議》,轉載必須註明作者和本文連結