chevere / data-structure
映射和向量数据结构
Requires
- php: ^8.1
- chevere/message: ^1.0.0
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
- symplify/easy-coding-standard: ^11.1
README
🔔 订阅 时事通讯 以不错过关于 Chevere 的任何更新。
摘要
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 找到。
许可证
Chevere 采用 Apache 许可证,版本 2.0。有关完整许可证文本,请参阅 LICENSE。
除非适用法律要求或书面同意,否则根据许可证分发的软件是以“现状”为基础分发的,不提供任何形式的明示或暗示保证。有关许可证的具体语言、许可范围和限制,请参阅许可证。