hi all,
trying to learn concurrency, wondering the use cases of channels and waitgroups
// var wait sync.WaitGroup
type Post struct {
ID int
Text string
}
func main() {
var posts []Post
p1 := CreatePost(1, "yahoo")
p2 := CreatePost(2, "google 1")
p3 := CreatePost(3, "excite 2")
p4 := CreatePost(4, "altavista 3")
p5 := CreatePost(5, "bing 4")
posts = append(posts, p1, p2, p3, p4, p5)
postCh := make(chan Post, 5)
go GetPosts(postCh, posts)
for v := range postCh {
fmt.Println(v)
}
}
func GetPosts(c chan Post, po []Post) {
for _, v := range po {
c <- v
}
close(c)
}
func CreatePost(id int, text string) Post {
return Post{
ID: id,
Text: text,
}
}