iter

package
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContainsAll

func ContainsAll[V comparable](iter Iter[V], subset Iter[V]) (bool, error)

他のイテレータの値がすべて存在していたらtrueを返す。

func ContainsAny

func ContainsAny[V comparable](iter Iter[V], subset Iter[V]) (bool, error)

他のイテレータの値がひとつでも存在していたらtrueを返す。

func Count

func Count[V comparable](iter Iter[V], v V) (int, error)

一致する値の数を返す。

func CountBy

func CountBy[V any](iter Iter[V], f func(V) (bool, error)) (int, error)

条件を満たす値の数を返す。

func EndsWith

func EndsWith[V comparable](iter Iter[V], subset Iter[V]) (bool, error)

終端が他のイテレータと一致していたらtrueを返す。

func Equal

func Equal[V comparable](iter1 Iter[V], iter2 Iter[V]) (bool, error)

他のイテレータと一致していたらtrueを返す。

func EqualBy

func EqualBy[V any](iter1 Iter[V], iter2 Iter[V], f func(V, V) (bool, error)) (bool, error)

他のイテレータと関数で比較し、一致していたらtrueを返す。

func Exists

func Exists[V comparable](iter Iter[V], v V) (bool, error)

一致する値が存在したらtrueを返す。

func ExistsBy

func ExistsBy[V any](iter Iter[V], f func(V) (bool, error)) (bool, error)

条件を満たす値が存在したらtrueを返す。

func Find

func Find[V comparable](iter Iter[V], v V) (V, bool, error)

一致する値を返す。

func FindBy

func FindBy[V any](iter Iter[V], f func(V) (bool, error)) (V, bool, error)

条件を満たす値を返す。

func Fold

func Fold[V1 any, V2 any](iter Iter[V1], v V2, f func(V2, V1) (V2, error)) (V2, error)

初期値と値を順に演算する。

func ForAll

func ForAll[V comparable](iter Iter[V], v V) (bool, error)

すべての値が一致したらtrueを返す。

func ForAllBy

func ForAllBy[V any](iter Iter[V], f func(V) (bool, error)) (bool, error)

すべての値が条件を満たせばtrueを返す。

func ForEach

func ForEach[V any](iter Iter[V], f func(V) error) error

値ごとに関数を実行する。

func Get

func Get[V any](iter Iter[V], index int) (V, bool, error)

指定した位置の値を返す。

func GetFirst

func GetFirst[V any](iter Iter[V]) (V, bool, error)

先頭の値を返す。

func GetFirstOrElse

func GetFirstOrElse[V any](iter Iter[V], v V) (V, error)

先頭の値を返す。無い場合はvを返す。

func GetLast

func GetLast[V any](iter Iter[V]) (V, bool, error)

終端の値を返す。

func GetLastOrElse

func GetLastOrElse[V any](iter Iter[V], v V) (V, error)

終端の値を返す。無い場合はvを返す。

func GetOrElse

func GetOrElse[V any](iter Iter[V], index int, v V) (V, error)

指定した位置の値を返す。無い場合はvを返す。

func GetOrFunc added in v0.0.3

func GetOrFunc[V any](iter Iter[V], index int, f func() (V, error)) (V, error)

指定した位置の要素を返す。無い場合は関数の実行結果を返す。

func GroupBy

func GroupBy[K comparable, V any](iter Iter[V], f func(V) (K, error)) (map[K][]V, error)

値ごとに関数の返すキーでグルーピングしたマップを返す。

func Index

func Index[V comparable](iter Iter[V], v V) (int, error)

一致する最初の値の位置を返す。

func IndexBy

func IndexBy[V any](iter Iter[V], f func(V) (bool, error)) (int, error)

条件を満たす最初の値の位置を返す。

func LastIndex

func LastIndex[V comparable](iter Iter[V], v V) (int, error)

一致する最後の値の位置を返す。

func LastIndexBy

func LastIndexBy[V any](iter Iter[V], f func(V) (bool, error)) (int, error)

条件を満たす最後の値の位置を返す。

func Len

func Len[V any](iter Iter[V]) (int, error)

値の数を返す。

func Max

func Max[V constraints.Ordered](iter Iter[V]) (V, error)

最大の値を返す。

func MaxBy

func MaxBy[V1 any, V2 constraints.Ordered](iter Iter[V1], f func(V1) (V2, error)) (V2, error)

値を変換して最大の値を返す

func Min

func Min[V constraints.Ordered](iter Iter[V]) (V, error)

最小の値を返す。

func MinBy

func MinBy[V1 any, V2 constraints.Ordered](iter Iter[V1], f func(V1) (V2, error)) (V2, error)

値を変換して最小の値を返す

func Must

func Must[V1 any](v1 V1, err error) V1

エラーがあるときpanicにする。

func Must2

func Must2[V1 any, V2 any](v1 V1, v2 V2, err error) (V1, V2)

エラーがあるときpanicにする。

func Must3

func Must3[V1 any, V2 any, V3 any](v1 V1, v2 V2, v3 V3, err error) (V1, V2, V3)

エラーがあるときpanicにする。

func Must4

func Must4[V1 any, V2 any, V3 any, V4 any](v1 V1, v2 V2, v3 V3, v4 V4, err error) (V1, V2, V3, V4)

エラーがあるときpanicにする。

func Must5

func Must5[V1 any, V2 any, V3 any, V4 any, V5 any](v1 V1, v2 V2, v3 V3, v4 V4, v5 V5, err error) (V1, V2, V3, V4, V5)

エラーがあるときpanicにする。

func Must6

func Must6[V1 any, V2 any, V3 any, V4 any, V5 any, V6 any](v1 V1, v2 V2, v3 V3, v4 V4, v5 V5, v6 V6, err error) (V1, V2, V3, V4, V5, V6)

エラーがあるときpanicにする。

func Partition

func Partition[V comparable](iter Iter[V], v V) (Iter[V], Iter[V], error)

値の一致するイテレータと一致しないイテレータを返す。

func PartitionBy

func PartitionBy[V any](iter Iter[V], f func(V) (bool, error)) (Iter[V], Iter[V], error)

条件を満たすイテレータと満たさないイテレータを返す。

func Reduce

func Reduce[V any](iter Iter[V], f func(V, V) (V, error)) (V, error)

値を順に演算する。

func Span

func Span[V comparable](iter Iter[V], v V) (Iter[V], Iter[V], error)

一致し続ける先頭部分と残りの部分、ふたつのイテレータを返す。

func SpanBy

func SpanBy[V any](iter Iter[V], f func(V) (bool, error)) (Iter[V], Iter[V], error)

条件を満たし続ける先頭部分と残りの部分、ふたつのイテレータを返す。

func Split

func Split[V comparable](iter Iter[V], v V) (Iter[V], Iter[V], error)

一致する値の直前で分割したふたつのイテレータを返す。

func SplitAfter

func SplitAfter[V comparable](iter Iter[V], v V) (Iter[V], Iter[V], error)

一致する値の直後で分割したふたつのイテレータを返す。

func SplitAfterBy

func SplitAfterBy[V any](iter Iter[V], f func(V) (bool, error)) (Iter[V], Iter[V], error)

条件を満たす値の直後で分割したふたつのイテレータを返す。

func SplitBy

func SplitBy[V any](iter Iter[V], f func(V) (bool, error)) (Iter[V], Iter[V], error)

条件を満たす値の直前で分割したふたつのイテレータを返す。

func StartsWith

func StartsWith[V comparable](iter Iter[V], subset Iter[V]) (bool, error)

先頭が他のイテレータと一致していたらtrueを返す。

func Sum

func Sum[V constraints.Ordered | constraints.Complex](iter Iter[V]) (V, error)

値の合計を演算する。

func SumBy

func SumBy[V1 any, V2 constraints.Ordered | constraints.Complex](iter Iter[V1], f func(V1) (V2, error)) (V2, error)

値を変換して合計を演算する。

func ToMap

func ToMap[K comparable, V any](iter Iter[tuple.T2[K, V]]) (map[K]V, error)

イテレータからマップをつくる。

func ToPtr

func ToPtr[V any](iter Iter[V]) (*V, error)

イテレータからポインタをつくる。 ふたつ目以降の値は無視される。

func ToSlice

func ToSlice[V any](iter Iter[V]) ([]V, error)

イテレータからスライスをつくる。

func Unzip2

func Unzip2[V1 any, V2 any](iter Iter[tuple.T2[V1, V2]]) (Iter[V1], Iter[V2], error)

値のペアを分離して2つのイテレータを返す。

func Unzip3

func Unzip3[V1 any, V2 any, V3 any](iter Iter[tuple.T3[V1, V2, V3]]) (Iter[V1], Iter[V2], Iter[V3], error)

値のペアを分離して3つのイテレータを返す。

func Unzip4

func Unzip4[V1 any, V2 any, V3 any, V4 any](iter Iter[tuple.T4[V1, V2, V3, V4]]) (Iter[V1], Iter[V2], Iter[V3], Iter[V4], error)

値のペアを分離して4つのイテレータを返す。

func Unzip5

func Unzip5[V1 any, V2 any, V3 any, V4 any, V5 any](iter Iter[tuple.T5[V1, V2, V3, V4, V5]]) (Iter[V1], Iter[V2], Iter[V3], Iter[V4], Iter[V5], error)

値のペアを分離して5つのイテレータを返す。

func Unzip6

func Unzip6[V1 any, V2 any, V3 any, V4 any, V5 any, V6 any](iter Iter[tuple.T6[V1, V2, V3, V4, V5, V6]]) (Iter[V1], Iter[V2], Iter[V3], Iter[V4], Iter[V5], Iter[V6], error)

値のペアを分離して6つのイテレータを返す。

Types

type Iter

type Iter[V any] interface {
	// 次の値を返す。
	// 第2戻り値は値があるときは true、なければ false を返す。
	Next() (V, bool)
	Err() error
}

func Append

func Append[V any](iter Iter[V], v ...V) Iter[V]

イテレータの末尾に値を追加する。

func Clean

func Clean[V comparable](iter Iter[V]) Iter[V]

ゼロ値を除いたイテレータを返す。

func Collect

func Collect[V1 any, V2 any](iter Iter[V1], f func(V1) (V2, bool, error)) Iter[V2]

条件を満たす値を変換したイテレータを返す。

func Concat

func Concat[V any](iter1 Iter[V], iter2 ...Iter[V]) Iter[V]

イテレータの末尾に他のイテレータを結合する。

func Distinct

func Distinct[V comparable](iter Iter[V]) Iter[V]

重複を除いたイテレータを返す。

func Drop

func Drop[V any](iter Iter[V], n int) Iter[V]

先頭n個の値を除いたイテレータを返す。

func DropWhile

func DropWhile[V comparable](iter Iter[V], v V) Iter[V]

一致し続ける先頭の値を除いたイテレータを返す。

func DropWhileBy

func DropWhileBy[V any](iter Iter[V], f func(V) (bool, error)) Iter[V]

条件を満たし続ける先頭の値を除いたイテレータを返す。

func Empty

func Empty[V any]() Iter[V]

func Filter

func Filter[V comparable](iter Iter[V], v V) Iter[V]

一致する値だけのイテレータを返す。

func FilterBy

func FilterBy[V any](iter Iter[V], f func(V) (bool, error)) Iter[V]

条件を満たす値だけのイテレータを返す。

func FilterNot

func FilterNot[V comparable](iter Iter[V], v V) Iter[V]

一致する値を除いたイテレータを返す。

func FilterNotBy

func FilterNotBy[V any](iter Iter[V], f func(V) (bool, error)) Iter[V]

条件を満たす値を除いたイテレータを返す。

func FlatMap

func FlatMap[V1 any, V2 any](iter Iter[V1], f func(V1) (Iter[V2], error)) Iter[V2]

値をイテレータに変換し、それらを結合したイテレータを返す。

func Flatten

func Flatten[V any](iter Iter[Iter[V]]) Iter[V]

平坦化したイテレータを返す。

func From

func From[V any](values ...V) Iter[V]

複数の値からイテレータをつくる。

func FromMap

func FromMap[K comparable, V any](m map[K]V) Iter[tuple.T2[K, V]]

マップからイテレータをつくる。

func FromMapKeys

func FromMapKeys[K comparable, V any](m map[K]V) Iter[K]

マップのキーからイテレータをつくる。

func FromMapValues

func FromMapValues[K comparable, V any](m map[K]V) Iter[V]

マップの値からイテレータをつくる。

func FromPtr

func FromPtr[V any](p *V) Iter[V]

ポインタからイテレータをつくる。

func FromSlice

func FromSlice[V any](slice []V) Iter[V]

スライスからイテレータをつくる。

func Indices

func Indices[V any](iter Iter[V]) Iter[int]

位置のイテレータを返す。

func Insert

func Insert[V any](iter Iter[V], index int, v ...V) Iter[V]

指定した位置に値を追加する。

func Join

func Join[V any](iter Iter[V], separator V) Iter[V]

値のあいだにseparatorを挿入したイテレータを返す。

func Map

func Map[V1 any, V2 any](iter Iter[V1], f func(V1) (V2, error)) Iter[V2]

値を変換したイテレータを返す。

func Option

func Option[V any](v V, ok bool) Iter[V]

値と値の有無を受け取ってイテレータをつくる。

func Range

func Range[V constraints.Ordered](start V, stop V, step V) Iter[V]

範囲を指定してイテレータをつくる。

func Remove

func Remove[V any](iter Iter[V], index int) Iter[V]

指定した位置の値を削除する。

func Replace

func Replace[V comparable](iter Iter[V], old V, new V) Iter[V]

ひとつめのoldをnewで置き換えたイテレータを返す。

func ReplaceAll

func ReplaceAll[V comparable](iter Iter[V], old V, new V) Iter[V]

すべてのoldをnewで置き換えたイテレータを返す。

func Take

func Take[V any](iter Iter[V], n int) Iter[V]

先頭n個の値のイテレータを返す。

func TakeWhile

func TakeWhile[V comparable](iter Iter[V], v V) Iter[V]

一致し続ける先頭の値のイテレータを返す。

func TakeWhileBy

func TakeWhileBy[V any](iter Iter[V], f func(V) (bool, error)) Iter[V]

条件を満たし続ける先頭の値のイテレータを返す。

func Zip2

func Zip2[V1 any, V2 any](iter1 Iter[V1], iter2 Iter[V2]) Iter[tuple.T2[V1, V2]]

2つのイテレータの同じ位置の値をペアにしたイテレータを返す。

func Zip3

func Zip3[V1 any, V2 any, V3 any](iter1 Iter[V1], iter2 Iter[V2], iter3 Iter[V3]) Iter[tuple.T3[V1, V2, V3]]

3つのイテレータの同じ位置の値をペアにしたイテレータを返す。

func Zip4

func Zip4[V1 any, V2 any, V3 any, V4 any](iter1 Iter[V1], iter2 Iter[V2], iter3 Iter[V3], iter4 Iter[V4]) Iter[tuple.T4[V1, V2, V3, V4]]

4つのイテレータの同じ位置の値をペアにしたイテレータを返す。

func Zip5

func Zip5[V1 any, V2 any, V3 any, V4 any, V5 any](iter1 Iter[V1], iter2 Iter[V2], iter3 Iter[V3], iter4 Iter[V4], iter5 Iter[V5]) Iter[tuple.T5[V1, V2, V3, V4, V5]]

5つのイテレータの同じ位置の値をペアにしたイテレータを返す。

func Zip6

func Zip6[V1 any, V2 any, V3 any, V4 any, V5 any, V6 any](iter1 Iter[V1], iter2 Iter[V2], iter3 Iter[V3], iter4 Iter[V4], iter5 Iter[V5], iter6 Iter[V6]) Iter[tuple.T6[V1, V2, V3, V4, V5, V6]]

6つのイテレータの同じ位置の値をペアにしたイテレータを返す。

func ZipWithIndex

func ZipWithIndex[V any](iter Iter[V]) Iter[tuple.T2[V, int]]

値と位置をペアにしたイテレータを返す。

type IterFunc

type IterFunc[V any] func() (V, bool)

func (IterFunc[V]) Err

func (f IterFunc[V]) Err() error

func (IterFunc[V]) Next

func (f IterFunc[V]) Next() (V, bool)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL