gopl

11章 テスト

11.6 Example関数 すごい。こんなものあるのかと思いました。 func ExampleAdd() { fmt.Println(Add(3, 4)) fmt.Println(Add(5, -1)) // Output: // 7 // 4 } このようなものをhoge_test.goに書いておき、godocするとドキュメントにコード例として表示されま…

11章 テスト

11.4 Benchmark 関数 $ go test -bench=. -benchmem これでベンチマークとメモリ割り当てを調べられます。 さっそくやってみました。 BenchmarkIsPalindrome-4 3548802 314 ns/op 248 B/op 5 allocs/op BenchmarkIsPalindromeB-4 3987262 309 ns/op 248 B/op…

11章 テスト

なかなか記事を書く習慣が身につかず飛び飛びになってしまいますし、そもそも網羅的に書くべきなのかどうかも分かりませんが、気分・心理状態次第になってしまいそうです。 11.2.5 効果的なテストの作成 テストも優れたユーザーインターフェースを提供しよう…

11章 テスト

11.2 Test関数 練習問題11.1 また安易に手を出してしまいました。 そしてまた写経に。 もとがmain()内部で動作するものなので、中身の処理を外部のcharcount()という関数にして、テストするのに必要な引数も加えます。 charcount()は戻り値を4つも返します。…

10章 パッケージとGoツール

10.5 ブランクインポート import ( "image" _ "image/png" ) pngパッケージのinit()を呼び出すためだけに、このようにすることがあるらしいです。 そのinit()で必要なデータや関数をimageパッケージに登録してimageを拡張してるみたいです。 練習問題10.1 ち…

9章 ゴルーチンとスレッド

9.8 ゴルーチンとスレッド 練習問題9.5 2つのバッファなしチャネルを介して卓球のようにメッセージを送り合う2つのゴルーチンを持つプログラム。 という問題です。 これですら難しく感じます。 ぱっと自分で思いついた方法は、まずいのだろうと思いますが、…

9章 ゴルーチンとスレッド

9.8 ゴルーチンとスレッド 練習問題9.4 とりあえず100万個のゴルーチンを作成してみました。 メモリ使用量はタスクマネージャーで見ると8559.4MBでした。 値が全体を伝わる時間は580.942msでした。 os: Windows 10 Pro 64bit cpu: i5-6600K mem: 16.0GB 1ゴ…

9章 ゴルーチンとスレッド

書籍のプログラミング言語Goをやっています。 すでに9章でブログでは途中からになってしまいますが。 9.7 例: 並行的で待たされないキャッシュ 練習問題9.3 Func型の拡張? (*Memo).Getメソッドの拡張だけではないのか? と、直感的に思い、簡単そうだからと安…