2013-04-01から1ヶ月間の記事一覧

Go言語の並行処理で総和を求める

パタヘネ本の7章(マルチコアとマルチプロセッサとクラスタ)に以下のような(ちょっと違うけど)図が載っていたので、Goの並行処理を使って100,000個の数の和を求めてみた。 最初の図とはちょっと違って、実際の制御はこんな感じ。 値が2つ揃ったら、加算を行う…

チャネルの配列(スライス)を生成する

Go言語でチャネルの配列(スライス)を生成するには、以下のように宣言する。 チャネルの固定長配列 var chans = []chan int { make(chan int), make(chan int), make(chan int), make(chan int), } もしくは var chans [4]chan int for i := range chans { ch…

Go言語のflagパッケージを使う

Go言語でコマンドラインオプションを扱う - そこはかとなく書くよん。 に触発されたので、flagパッケージについて自分で使ってみてハマったところを書いておく。 コマンドラインオプションの略称を登録する flag.IntVar()などのXxxVar()を使う。 これで -boo…

Go言語は定数配列宣言ができない

以下のコードはコンパイルが通らない。 package main func main() { const array = [...]int {1,2,3,4,5} } コンパイルエラー。 const initializer must be constan Goでは、配列やスライスは全てランタイム中に生成される。 それに対して、定数はコンパイル…