Linux 拨号vps windows公众号手机端

Go中如何实现generator模式的数据流

lewis 7年前 (2018-04-13) 阅读数 7 #程序编程
文章标签 go

在Go语言中,可以使用goroutine和channel来实现generator模式的数据流。下面是一个简单的示例代码:

package main

import (
	"fmt"
)

func generator() <-chan int {
	out := make(chan int)

	go func() {
		defer close(out)
		for i := 0; i < 5; i++ {
			out <- i
		}
	}()

	return out
}

func main() {
	stream := generator()

	for num := range stream {
		fmt.Println(num)
	}
}

在上面的示例中,generator函数返回一个只发送数据的只读channel,然后在goroutine中向这个channel发送数据。在main函数中,通过for循环不断从channel中读取数据,实现了generator模式的数据流。

通过这种方式,可以很方便地实现数据流的生成和处理,使代码更加清晰和简洁。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门