perf/枚举

此包已被废弃,不再维护。未建议替代包。

枚举类:映射和集合,均具有可变和不可变的行为。

1.0.2 2016-08-22 02:53 UTC

This package is auto-updated.

Last update: 2024-05-09 04:20:15 UTC


README

此库允许与专用数组交互:集合和映射,这些可以声明为可变或不可变。

集合是由值列表组成的数组,具有数字索引(键)。映射是由键值对组成的数组。当集合或映射声明为"可变"时,允许更改其内容(例如,添加、设置或删除值)。当集合或映射声明为"不可变"时,不允许更改其内容。

安装 & 要求

没有其他库的依赖项。

使用Composer安装

{
	"require":
	{
		"perf-enumeration" : "~1.0"
	}
}

用法

集合

基本操作

<?php

use perf\Enumeration\Collection;

$array = array(
	'foo',
	'bar',
	'baz',
);

$collection = Collection::createMutable($array);

if ($collection->contains('bar')) { // true
	// ...
}

if ($collection->isEmpty()) { // false
	// ...
}

$size = $collection->getSize(); // 3

if ($collection->has(1)) { // true
	$value = $collection->get(1); // 'bar'

	// ...
}

$firstValue = $collection->first(); // 'foo'

$lastValue = $collection->last(); // 'baz'

迭代

<?php

use perf\Enumeration\Collection;

$array = array(
	'foo',
	'bar',
	'baz',
);

$collection = Collection::createImmutable($array);

foreach ($collection as $pair) {
	$pair->key();   // 0,     1,     2
	$pair->value(); // 'foo', 'bar', 'baz'
	$pair->index(); // 0,     1,     2
	$pair->rank();  // 1,     2,     3
	$pair->odd();   // true,  false, true
	$pair->even();  // false, true,  false
	$pair->first(); // true,  false, false
	$pair->last();  // false, false, true
}

映射

基本操作

<?php

use perf\Enumeration\Map;

$array = array(
	'foo' => 123,
	'bar' => 234,
	'baz' => 345,
);

$map = Map::createMutable($array);

if ($map->contains(123)) { // true
	// ...
}

if ($map->isEmpty()) { // false
	// ...
}

$size = $map->getSize(); // 3

if ($map->has('foo')) { // true
	$value = $map->get('foo'); // 123

	// ...
}

迭代

<?php

use perf\Enumeration\Map;

$array = array(
	'foo' => 123,
	'bar' => 234,
	'baz' => 345,
);

$map = Map::createImmutable($array);

foreach ($map as $pair) {
	$pair->key();   // 'foo', 'bar', 'baz'
	$pair->value(); // 123,   234,   345
	$pair->index(); // 0,     1,     2
	$pair->rank();  // 1,     2,     3
	$pair->odd();   // true,  false, true
	$pair->even();  // false, true,  false
	$pair->first(); // true,  false, false
	$pair->last();  // false, false, true
}