Documentation ¶
Overview ¶
Package chans は、チャネルに関するユーティリティが配置されています。
Index ¶
- func Bridge(done <-chan struct{}, chanCh <-chan <-chan interface{}) <-chan interface{}
- func Concat(done <-chan struct{}, chList ...<-chan interface{}) <-chan interface{}
- func Enumerate(done <-chan struct{}, in <-chan interface{}) <-chan interface{}
- func FanIn(done <-chan struct{}, channels ...<-chan interface{}) <-chan interface{}
- func Filter(done <-chan struct{}, in <-chan interface{}, predicate func(interface{}) bool) <-chan interface{}
- func ForEach(done <-chan struct{}, in ...interface{}) <-chan interface{}
- func FromIntCh(ch <-chan int) <-chan interface{}
- func FromStringCh(ch <-chan string) <-chan interface{}
- func Interval(done <-chan struct{}, in <-chan interface{}, interval time.Duration) <-chan interface{}
- func Loop(done <-chan struct{}, start, end int) <-chan int
- func LoopInfinite(done <-chan struct{}) <-chan int
- func Map(done <-chan struct{}, in <-chan interface{}, fn MapFunc) <-chan interface{}
- func OrDone(done <-chan struct{}, in <-chan interface{}) <-chan interface{}
- func Repeat(done <-chan struct{}, values ...interface{}) <-chan interface{}
- func RepeatFn(done <-chan struct{}, fn func() interface{}) <-chan interface{}
- func Skip(done <-chan struct{}, in <-chan interface{}, count int) <-chan interface{}
- func SkipWhile(done <-chan struct{}, in <-chan interface{}, value interface{}) <-chan interface{}
- func SkipWhileFn(done <-chan struct{}, in <-chan interface{}, fn func() interface{}) <-chan interface{}
- func Take(done <-chan struct{}, in <-chan interface{}, count int) <-chan interface{}
- func TakeWhile(done <-chan struct{}, in <-chan interface{}, value interface{}) <-chan interface{}
- func TakeWhileFn(done <-chan struct{}, in <-chan interface{}, fn func() interface{}) <-chan interface{}
- func Tee(done <-chan struct{}, in <-chan interface{}) (<-chan interface{}, <-chan interface{})
- func ToInt(done <-chan struct{}, in <-chan interface{}, failedValue int) <-chan int
- func ToString(done <-chan struct{}, in <-chan interface{}, failedValue string) <-chan string
- func WhenAll(channels ...<-chan struct{}) <-chan struct{}
- func WhenAny(channels ...<-chan struct{}) <-chan struct{}
- type IterValue
- type MapFunc
- type MapValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Bridge ¶ added in v0.1.5
func Bridge(done <-chan struct{}, chanCh <-chan <-chan interface{}) <-chan interface{}
Bridge -- 指定されたチャネルのシーケンスを順に消費していく単一のチャネルを返します。
func Concat ¶ added in v0.1.7
func Concat(done <-chan struct{}, chList ...<-chan interface{}) <-chan interface{}
Concat -- 指定されたチャネルのシーケンスを順に消費していく単一のチャネルを返します。
func Enumerate ¶ added in v0.2.0
func Enumerate(done <-chan struct{}, in <-chan interface{}) <-chan interface{}
Enumerate -- 指定された入力チャネルの要素に対してインデックスを付与したデータを返すチャネルを生成します。
戻り値のチャネルから取得できるデータ型は、*chans.IterValue となっています。
for e := range chans.Enumerate(done, inCh) { if v, ok := e.(*IterValue); ok { // v.Index でインデックス、 v.Value で値が取得できる } }
func FanIn ¶ added in v0.1.5
func FanIn(done <-chan struct{}, channels ...<-chan interface{}) <-chan interface{}
FanIn -- 指定されたチャネルリストをファンインするチャネルを返します。
func Filter ¶ added in v0.2.0
func Filter(done <-chan struct{}, in <-chan interface{}, predicate func(interface{}) bool) <-chan interface{}
Filter -- 入力データチャネル in から取得したデータを predicate に渡して 真 となったデータを返すチャネルを生成します。
func ForEach ¶ added in v0.2.0
func ForEach(done <-chan struct{}, in ...interface{}) <-chan interface{}
ForEach -- 指定されたデータを出力するチャネルを生成します。
func FromIntCh ¶ added in v0.2.0
func FromIntCh(ch <-chan int) <-chan interface{}
FromIntCh -- chan int を chan interface{} に変換します。
func FromStringCh ¶ added in v0.2.0
func FromStringCh(ch <-chan string) <-chan interface{}
FromStringCh -- chan string を chan interface{} に変換します。
func Interval ¶ added in v0.2.0
func Interval(done <-chan struct{}, in <-chan interface{}, interval time.Duration) <-chan interface{}
Interval -- 指定した間隔でデータを出力していくチャネルを生成します。
func LoopInfinite ¶ added in v0.2.0
func LoopInfinite(done <-chan struct{}) <-chan int
LoopInfinite -- 無限にループして、データを返し続けるチャネルを生成します。
func Map ¶ added in v0.2.0
func Map(done <-chan struct{}, in <-chan interface{}, fn MapFunc) <-chan interface{}
Map -- 関数 fn を入力チャネル in の各要素に適用した結果を返すチャネルを生成します。
戻り値のチャネルから取得できるデータ型は、*chans.MapValue となっています。
for m := range chans.Map(done, inCh, fn) { if v, ok := m.(*chans.MapValue); ok { // v.Before で元の値、 v.After で適用後の値が取得できる } }
func OrDone ¶ added in v0.1.5
func OrDone(done <-chan struct{}, in <-chan interface{}) <-chan interface{}
OrDone -- 指定された終了チャネルと入力用チャネルのどちらかが閉じたら閉じるチャネルを返します。
func Repeat ¶ added in v0.1.5
func Repeat(done <-chan struct{}, values ...interface{}) <-chan interface{}
Repeat -- 指定した値を永遠と繰り返すチャネルを返します。
func RepeatFn ¶ added in v0.1.5
func RepeatFn(done <-chan struct{}, fn func() interface{}) <-chan interface{}
RepeatFn -- 指定した関数を永遠と繰り返し、その戻り値を返すチャネルを返します。
func Skip ¶ added in v0.2.0
func Skip(done <-chan struct{}, in <-chan interface{}, count int) <-chan interface{}
Skip -- 指定した個数分、入力用チャネルから値をスキップするチャネルを返します。
func SkipWhile ¶ added in v0.2.0
func SkipWhile(done <-chan struct{}, in <-chan interface{}, value interface{}) <-chan interface{}
SkipWhile -- 入力用チャネルから取得した値が指定した値と同一である間、値をスキップし続けるチャネルを返します。
func SkipWhileFn ¶ added in v0.2.0
func SkipWhileFn(done <-chan struct{}, in <-chan interface{}, fn func() interface{}) <-chan interface{}
SkipWhileFn -- 入力用チャネルから取得した値が指定した関数の戻り値と同一である間、値をスキップし続けるチャネルを返します。
func Take ¶ added in v0.1.5
func Take(done <-chan struct{}, in <-chan interface{}, count int) <-chan interface{}
Take -- 指定した個数分、入力用チャネルから値を取得するチャネルを返します。
func TakeWhile ¶ added in v0.1.5
func TakeWhile(done <-chan struct{}, in <-chan interface{}, value interface{}) <-chan interface{}
TakeWhile -- 入力用チャネルから取得した値が指定した値と同一である間、値を取得し続けるチャネルを返します。
func TakeWhileFn ¶ added in v0.1.5
func TakeWhileFn(done <-chan struct{}, in <-chan interface{}, fn func() interface{}) <-chan interface{}
TakeWhileFn -- 入力用チャネルから取得した値が指定した関数の戻り値と同一である間、値を取得し続けるチャネルを返します。
func Tee ¶ added in v0.1.5
func Tee(done <-chan struct{}, in <-chan interface{}) (<-chan interface{}, <-chan interface{})
Tee -- Unix の tee コマンドのように一つの入力を2つに複製するチャネルを返します。
noinspection GoNilness
func ToInt ¶ added in v0.1.5
ToInt -- 入力用チャネルから値を取得し、数値に変換するチャネルを返します。
数値に変換することが出来なかった場合は、引数 failedValue を出力用チャネルに送ります。
func ToString ¶ added in v0.1.5
ToString -- 入力用チャネルから値を取得し、文字列に変換するチャネルを返します。
文字列に変換することが出来なかった場合は、引数 failedValue を出力用チャネルに送ります。
Types ¶
type IterValue ¶ added in v0.2.0
type IterValue struct { Index int // インデックス Value interface{} // 値 }
IterValue -- chans.Enumerate() にて利用されるデータ型です。