virsalusの日記スマートフォン用の表示で見るvirsalusの日記この広告は、90日以上更新していないブログに表示しています。cancellation読んでいて、このパターン使えばよかったのかという気づきがあったので内容を抜粋してメモする。channelから3回受信する}rangeとclosechannelをrangeで回すことによってchannelからの受信を簡単にすることができる。process(i)}また、channelをcloseすることでrangeのイテレーションを止めることができる。送信するべきデータを送り終えたり受信側のchannelがcloseした時に、送信側のchannelをcloseすることで処理の終了を伝搬させることができる。いうか、rangeで回すときはcloseしなければ恐らくdeadlockして怒られる。途中終了rangeとcloseを用いることで処理の終了を伝搬させることができるが、これでは正規に送信が終わるまで、処理を途中で止めることができない。途中で処理を終了したいときは、途中で処理を終了するためのchannelを新たに作る。このchannelを引数として渡すことで、関数の外から処理を終了させることができるようになる。この新たに作ったchannelとそれまで使っていたchannelのどちらからも受信できるように、select構文を用いる。out}こんなものが載ってた。言葉にすると、関数の最初で出力channelを作って、goroutineな無名関数の中で実際の処理を行い、返り値は出力channelってパターン。pipeって感じがして、とりあえずこれを知っておけばgolangでできることがかなり増えそうだと思った。最後にgolangのgoroutine周りあまり上手く使えていないので、誰かいいチュートリアル教えてください。"tight"とかそれ系のやつ月別アーカイブはてなブログをはじめよう!virsalusさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。