* Docker
* X.v6
を読むことになったので、今日はgo言語入門でした。Dockerはgoで書かれてるらしいです。
といっても、go は、ほとんど、セミコロンのないCなので、見るのは go routine と channel だけですね。
for i:=0;i<10;i++ { go func() { fmt.Println(i) } () }
とかするんですが、10 がたくさん表示される。あれ?
for i:=0;i<10;i++ { j := i go func() { fmt.Println(j) } () }
かと思ったが、やっぱり 10 。正解は、
for i:=0;i<10;i++ { go func(i int) { fmt.Println(i) } (i) }
らしいです。for 文の方が先に終わっちゃうわけね。
昔、一通り追ったが、忘れてるな。channel は便利そうだが、大変そう。ちなみに、Docker でどのように使われているのかは謎です。
Docker は来週で片付けたい。
X.v6は、たぶん、6月初旬ぐらいに、まとめて読みます。 参考にしたのはこっちです。https://talks.golang.org/2012/concurrency.slide#12
No comments:
Post a Comment