chevere/data-structure

映射和向量数据结构

1.0.1 2024-01-08 16:50 UTC

This package is auto-updated.

Last update: 2024-09-20 11:46:01 UTC


README

🔔 订阅 时事通讯 以不错过关于 Chevere 的任何更新。

Chevere

Build Code size Apache-2.0 PHPStan Mutation testing badge

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Coverage Technical Debt CodeFactor

摘要

DataStructure 提供映射和向量数据结构。

安装

DataStructure 可通过 Packagist 获取,仓库源代码位于 chevere/data-structure

composer require chevere/data-structure

映射

映射是一个键值对的顺序集合。键可以是 整数字符串 类型。

通过传递任何类型的命名参数来创建映射。

use Chevere\DataStructure\Map;

$map = new Map(foo: $foo, bar: $bar);

放置映射值

使用 withPut 方法将值放入映射。

$map = $map
    ->withPut(
        foo: $foo,
        bar: $bar
    );

计数映射键

count 方法返回映射的键数量。

$map->count();
// 2

映射键

使用 keys 方法检索映射键作为数组。

$map->keys();
// ['foo', 'bar']

检查映射键

使用 has 方法检查映射是否包含指定的键。

$map->has('foo'); // true
$map->has('notFound'); // false

断言映射键

使用 assertHas 方法断言映射是否包含指定的键。如果断言失败,则抛出异常。

$map->assertHas('foo');
$map->assertHas('notFound');

获取映射值

使用 get 方法检索给定键的映射值。

$foo = $map->get('foo');
$bar = $map->get('bar');

向量

向量是任何类型值的序列。键是整数类型。

通过传递值来创建向量。

use Chevere\DataStructure\Vector;

$vector = new Vector($value1, $value2,);

计数向量键

count 方法返回向量中的键数量。

$vector->count();
// 2

向量键

使用 keys 方法检索映射键作为数组。

$map->keys();
// [0, 1]

推送向量值

使用 withPush 方法向序列末尾添加一个或多个元素。

$with = $vector->withPush($value,);

设置向量值

使用 withSet 方法设置指定位置的值。

$with = $vector->withSet(0, $value);

向序列开头推送值

使用 withUnshift 方法在序列开头前添加一个或多个元素。

$with = $vector->withUnshift($value,);

插入向量值

使用 withInsert 方法在指定位置插入值。

$with = $vector->withInsert($pos, ...$values);

移除向量值

使用 withRemove 方法在指定位置移除一个或多个值。

$with = $vector->withRemove($pos,);

检查向量值

使用 has 方法检查向量是否包含指定的值。

$vector->has($value); // true
$vector->has($notFound); // false

断言向量值

使用 assertHas 方法断言向量是否包含指定的值。如果断言失败,则抛出异常。

$vector->assertHas($value);

获取向量值

使用 get 方法检索给定位置的向量值。

$value = $vector->get($pos);

查找值

使用 find 方法查找给定值的索引。

$pos = $vector->find($value);

检查值

使用 contains 方法检查向量是否包含指定的值。

$vector->contains($value); // bool

文档

文档可在 chevere.org 找到。

许可证

版权 Rodolfo Berrios A.

Chevere 采用 Apache 许可证,版本 2.0。有关完整许可证文本,请参阅 LICENSE

除非适用法律要求或书面同意,否则根据许可证分发的软件是以“现状”为基础分发的,不提供任何形式的明示或暗示保证。有关许可证的具体语言、许可范围和限制,请参阅许可证。