thesebas/itertools 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

thesebas/itertools

Composer 安装命令:

composer require thesebas/itertools

包简介

itertools for working with genrators/iterators

README 文档

README

Tools to work with iterators. BUILD STATUS Coverage Status

Installation

composer require thesebas/itertools

Usage

Lest assume we have some generator that yields letters.

expect(iterator_to_array(gen(3)))->toBe(['a', 'b', 'c']);

tail

Skip all but n items from Iterator.

$actual = tail(gen(5), 3, false);
expect(iterator_to_array($actual))->toBe(['c', 'd', 'e']);

head

Iterator over n first items.

$actual = head(gen(10), 3);
expect(iterator_to_array($actual))->toBe(['a', 'b', 'c']);

skip

Skip n items and iterate over rest.

$actual = skip(gen(10), 4);
expect(iterator_to_array($actual))->toBe(['e', 'f', 'g', 'h', 'i', 'j']);

tee

Split Iterator to two independent Iterators (with internal buffering).

list($left, $right) = tee(gen(10));


expect(iterator_to_array(head($left, 3)))->toBe(['a', 'b', 'c']);
expect(iterator_to_array(head($right, 5)))->toBe(['a', 'b', 'c', 'd', 'e']);

expect(iterator_to_array(head($left, 5)))->toBe(['d', 'e', 'f', 'g', 'h']);
expect(iterator_to_array(head($right, 2)))->toBe(['f', 'g']);

expect(iterator_to_array(head($left, 2)))->toBe(['i', 'j']);
expect(iterator_to_array(head($right, 3)))->toBe(['h', 'i', 'j']);

chain

Iterate over first, then second, third...

$actual = chain(gen(5), gen(3));
expect(iterator_to_array($actual))->toBe(['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c']);

filter

Iterate ovel all but yield only filtered items.

$actual = filter(gen(10), function ($item, $key) {
    return $key % 2 == 1;
});
expect(iterator_to_array($actual))->toBe(['b', 'd', 'f', 'h', 'j']);

map

Return new Iterator with mapped values

$actual = map(gen(3), function ($item, $key) {
    return "item {$key}: {$item}";
});

expect(iterator_to_array($actual))->toBe(['item 0: a', 'item 1: b', 'item 2: c']);

chunk

Return iterator of chunk iterators.

$actual = \iterator_to_array(map(chunk(gen(10), 3), '\\iterator_to_array'));
expect($actual)->toBe([
    ['a', 'b', 'c'],
    ['d', 'e', 'f'],
    ['g', 'h', 'i'],
    ['j']
]);

统计信息

  • 总下载量: 30
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-11-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固