本文整理匯總了Golang中github.com/keep94/gofunctional2/functional.Stream.Next方法的典型用法代碼示例。如果您正苦於以下問題:Golang Stream.Next方法的具體用法?Golang Stream.Next怎麽用?Golang Stream.Next使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/keep94/gofunctional2/functional.Stream
的用法示例。
在下文中一共展示了Stream.Next方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Consume
// Consume fetches the values. s is a Stream of T.
func (pb *PageBuffer) Consume(s functional.Stream) {
defer s.Close()
pb.page_no = 0
pb.idx = 0
pb.is_end = false
pb.err = nil
for pb.err == nil && !pb.isDesiredPageRead() {
if pb.idx > 0 {
pb.page_no++
}
offset := pb.pageOffset(pb.page_no)
pb.idx, pb.err = readStreamIntoSlice(
s, pb.buffer.Slice(offset, offset+pb.pageLen), pb.addrFunc)
}
if pb.err == nil {
pb.is_end = s.Next(pb.addrFunc(pb.buffer.Index(pb.pageOffset(pb.page_no+1)))) == functional.Done
} else if pb.err == functional.Done {
pb.is_end = true
pb.err = nil
if pb.page_no > 0 && pb.idx == 0 {
pb.page_no--
pb.idx = pb.pageLen
}
}
}
示例2: Consume
// Consume prints all Entry values that s emits to stdout. On error, prints
// the error encountered and halts.
func (p Printer) Consume(s functional.Stream) {
var entry Entry
err := s.Next(&entry)
for ; err == nil; err = s.Next(&entry) {
fmt.Println(&entry)
}
if err != functional.Done {
fmt.Printf("Error happened: %v\n", err)
s.Close()
}
}
示例3: readStreamIntoSlice
func readStreamIntoSlice(
s functional.Stream,
aSlice reflect.Value,
addrFunc func(reflect.Value) interface{}) (numRead int, err error) {
l := aSlice.Len()
for numRead = 0; numRead < l; numRead++ {
err = s.Next(addrFunc(aSlice.Index(numRead)))
if err != nil {
break
}
}
return
}
示例4: FirstOnly
// FirstOnly reads the first value from stream storing it in ptr.
// FirstOnly closes the stream.
// FirstOnly returns emptyError if no values were on stream.
func FirstOnly(stream functional.Stream, emptyError error, ptr interface{}) (err error) {
defer func() {
closeError := stream.Close()
if err == nil {
err = closeError
}
}()
err = stream.Next(ptr)
if err == functional.Done {
err = emptyError
return
}
return
}
示例5: Consume
func (c *errorReportingConsumerForTesting) Consume(s functional.Stream) {
var x int
for s.Next(&x) != functional.Done {
c.count++
}
}