はじめてのチャネル
チャネルを使ったfizzbuzzを。出力めちゃくちゃだけどw
package main import ( "fmt" "strconv" ) func fizzbuzz(min, max int, ch chan string) { for i := min; i <= max; i++ { numStr := strconv.Itoa(i) outStr := numStr + ": " switch { case i % 15 == 0: outStr += "fizzbuzz" case i % 5 == 0: outStr += "buzz" case i % 3 == 0: outStr += "fizz" default: outStr += numStr } fmt.Println(outStr) } ch <- "end" } func main() { ch1 := make(chan string) ch2 := make(chan string) go fizzbuzz(1, 50, ch1) go fizzbuzz(51, 100, ch2) <- ch1 <- ch2 }
並列処理簡単に書けるねー。