Coder Social home page Coder Social logo

perf-enumeration's Introduction

perf-enumeration

This library allows to interact with specialized arrays: collections and maps, which can be declared mutable or immutable.

Collections are arrays which consist of a list of values, with numeric indexes (keys). Maps are arrays which consist of key-value pairs. When a collection or a map is declared "mutable", it is allowed to alter its content (ie, add, set or remove values). When a collection or a map is declared "immutable", it is not allowed to alter its content.

Installation & Requirements

There are no dependencies on other libraries.

Install with Composer:

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

Usage

Collections

Basic operations

<?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'

Iteration

<?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
}

Maps

Basic operations

<?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

	// ...
}

Iteration

<?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
}

perf-enumeration's People

Contributors

jmfeurprier avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.