Golang Cafe #3

本日は「GoroutineとChannel」たまにgitでした! http://www.zusaar.com/event/1547005
0
Takashi Yokoyama @ttyokoyama

告知が遅れましたが、Golang Cafe #3 を開催します。 今回は、goroutines、channelの予定。 http://t.co/ByG26sXjIe #gdgchugoku

2013-11-07 00:04:11
Takashi Yokoyama @ttyokoyama

そろそろ、開催の時間が近づいてきました。到着した方は適当に入って席の確保をお願いします。 #gdgchugoku

2013-11-10 17:29:47
Ryuji Iwata @qt_luigi

いつもの入って左側の席です。 #gdgchugoku

2013-11-10 17:52:41
taknb2nch @taknb2nch

(*encodeState).WriteString はBuffer。WriteStringが呼ばれるのか、分かりました。#gdgchugoku

2013-11-10 18:01:56
Ryuji Iwata @qt_luigi

@taknb2nch さんの質問に @ttyokoyama が回答しようとしているが、お互い見ている Go のソースのバージョン(1.1.2 と 1.2)が違って、ややちぐはぐと(^^;) ソースレベルでいろいろと変わっている模様。 #gdgchugoku

2013-11-10 18:05:38
Ryuji Iwata @qt_luigi

厳密には Go 1.2 -> Go 1.2rc3。Go 1.2 は 12/1 リリース予定。 #gdgchugoku

2013-11-10 18:07:43
Ryuji Iwata @qt_luigi

Golang Cafe #3、始まりました〜 #gdgchugoku

2013-11-10 18:13:46
Takashi Yokoyama @ttyokoyama

masterをcloneして、「git checkout step1」で切り替わるはず。 #gdgchugoku

2013-11-10 18:15:27
Ryuji Iwata @qt_luigi

本日はGo言語名物!?GoroutineとChannelについてです。 #gdgchugoku

2013-11-10 18:26:06
taknb2nch @taknb2nch

goroutine で呼ばれる関数の戻り値は取得できません。 #gdgchugoku

2013-11-10 18:30:38
Ryuji Iwata @qt_luigi

@ttyokoyama さんは「早すぎる男」 @taknb2nch さんは「先走る男」 #gdgchugoku

2013-11-10 18:35:15
taknb2nch @taknb2nch

チャンネルに送る値の型には気をつける。#gdgchugoku

2013-11-10 18:36:17
taknb2nch @taknb2nch

構造体の初期化の書き方はC#のオブジェクト初期化子の書き方とは違います。#gdgchugoku

2013-11-10 18:38:29
taknb2nch @taknb2nch

for no := range ch とかけば <-chが不要です。#gdgchugoku

2013-11-10 18:45:29
taknb2nch @taknb2nch

for no := range ch で受け取るときは明示的にcloseしましょう!#gdgchugoku

2013-11-10 18:47:25
Ryuji Iwata @qt_luigi

呼び出す数=バッファの数。多過ぎても少な過ぎてもダメ。 #gdgchugoku

2013-11-10 18:51:53
taknb2nch @taknb2nch

select の中身がなかったら無限待ちになります。#gdgchugoku

2013-11-10 18:54:30
taknb2nch @taknb2nch

抜けたいブロックの直前にラベルを付けます。#gdgchugoku

2013-11-10 19:10:07
taknb2nch @taknb2nch

selectの中でdefaultを書いた場合、何も受信しないときはdefaultが呼ばれる、defaultがない場合はブロックされる。#gdgchugoku

2013-11-10 19:16:13
taknb2nch @taknb2nch

case <- time.After(5 * time.Second):time.Afterの戻り値がチャンネルなので書けます。#gdgchugoku

2013-11-10 19:22:16