go funcの使い分け
Goは色々と今までの言語と異なり、慣れるのに一苦労なんじゃないか?と思いつつも、コンセプトは結構好き。 そんな言語だけど、こういう初歩的なところで悩むことが多い。
go func
さぁ、どっちがいいのか?
無名関数として実行している。
i := 3
var result int
func() {
result = i * 10
}()
goroutineとして実行している。
i := 3
c := make(chan int)
var result int
go func() {
result = i * 10
c<- 1
}()
<-c
どっちがいいというか、こういう書き方ができるというサンプルであって、
- 処理を明示したいなら前者
- そっちの処理をさせつつ、そのまま別の処理もしたい場合は後者
って使い分けなのかなぁ?と思っている。
前者はこうすべきなのでは?と思ったり。
i := 3
result := func() (result int) {
result = i * 10
return
}()
まとめ
こういう作法とか使い分けを知りたい。