この記事は 下記の観点による個人的なsamber/loのチートシートになります。
-
A → Bというデータ変換の観点で整理 - 個人的によく使うヘルパーだけに絞ってる
- 別パッケージで同一のものがあればまとめる
背景
Go Way では愚直に for文を回すことが美徳とされるが、モダン言語経験者からすると高階関数やヘルパーが欲しくなることが多いと思う(個人的感想)。
built-inでもヘルパーが増えてきているが機能的にまだまだ足りていないし、意図的に弾かれてしまってるものもある。
それなら、じゃあ samber/lo を使おうと思うわけなのだが機能が微妙に多いわりに、整理の区分が個人的にわかりにくいと感じていた。そのため、自分用にチートシートをまとめた。
from slice
-
slicetoslice- lo:Filter / lo:Reject ( slices:DeleteFunc) / lo:FilterReject
- lo:Map
- lo:UniqBy
-
lo:Flatten (
[][]T → []T) - lo:FilterMap
-
lo:FlatMap (
[]T → [][]T → []T)
-
slicetostruct -
slicetomap -
slicetobool -
slicetoany- lo:Reduce (Go Way から離れすぎることが多いので使う時は注意)
from map
-
maptomap -
maptoslice
ptr helper
Appendix
-
slice + slicetoslice + slice- lo:DifferenceBy / lo:IntersectionBy (ロジックが複雑な時に欲しい時があるのだが、実装PRのマージ待ち)