Screaming Loud

研究・プログラミングなど気づいたことをメモをしています。読書記録はこちらに記載しています。https://bookmeter.com/users/75944

Scala用のコレクション操作の拡張ライブラリsansyo(山椒)を作りました

タイトルの通り、Scala用のコレクション操作の拡張ライブラリを作りました。

名前はsansyoです。

意味としては、 「山椒は小粒でもぴりりと辛い」 から来ていて、コレクションの拡張ライブラリのため、小さいですが便利になるものとして作りました。

ライブラリのサイズとしても小さいので、気軽に入れてもらえるかと思います。

github.com

作成方針

方針としては、標準のScalaだけを使ってる人が簡単に導入できるように作りました。

また、implicit conversionで作っています。 objectの名前は ~Utilsなので一般的ですが、 implicit conversionで作っているため名前衝突はしないかなーと思っています。

機能

今すでに作っているものとしては3つです。 使い方の細かいところはQuickStartを見ていただければと思います。

emptyOrElse

OptionはgetOrElseがあるのですが、Seqはそれに当たるものがないため作りました。

partitionMap

partitionMapはpartitionをした後、分けたものに対して同じ処理を行うものです。

grouping

tupleのSeqをMapにするものです。 単純にgroupByをすると、Mapのvalue部分が元の配列のtupleになってしまうのですが、 結構元の配列を使うことが少なくて、tuple._2のほうが欲しいことが多くて、このメソッドを作りました。

まとめ

もし使ったり、プルリクなど送っていただけたら幸いです。