Go言語でコマンドラインオプションを扱う¶ Go言語でコマンドラインオプションの扱い方について調べました。 基礎¶ osパッケージのArgsを使うのが一番基礎的な関数です。 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } % go run main.go [/tmp/go-build146822252/command-line-arguments/_obj/a.out] %go run main.go hoge [/tmp/go-build842086855/command-line-arguments/_obj/a.out hoge] %go run main.go hoge hige [/tmp/go-build161156361/command-line-arguments/_obj/a.
GoでGUI作る決定版! ほとんどのプラットフォームで動くGUIネイティブアプリを作れる qtパッケージの紹介。 GitHub: https://github.com/therecipe/qt クロスプラットフォームなGUIライブラリ GUIをクロスプラットフォーム対応するのはとても膨大なAPIをカバーするため 多くは限定的な機能提供にとどまるパターンがとても多いです。 その中でQtは20年以上の歴史を持ちかなり広範なプラットフォームをサポートした C++製のGUIフレームワークです。GUI機能そのものがフルスタックな上、 画像処理、ネットワークやオーディオ・ビデオなどのサポートも内包しています。 therecipe/qtはこのQtをGoから使えるようにラップしたパッケージです。 therecipe/qtがサポートするプラットフォームは以下 (本家Qtはもう少し多い) Mac OS X(m
特定のAPIを利用するコマンドラインツールやサービスを書く場合はClientパッケージ(SDKと呼ばれることも多いが本記事ではClientと呼ぶ)を使うことが多いと思う.広く使われているサービスのAPIであれば大抵はオフィシャルにClientパッケージが提供されている.例えば以下のようなものが挙げられる. https://github.com/aws/aws-sdk-go https://github.com/Azure/azure-sdk-for-go https://github.com/PagerDuty/go-pagerduty https://github.com/hashicorp/atlas-go 特別使いにくい場合を除けば再実装は避けオフィシャルに提供されているものを使ってしまえばよいと思う(まともなものなら互換性などをちゃんと考慮してくれるはずなので).一方で小さなサービ
WebSocket? 以下のスライドでどういうものかは学びました。 http://www.slideshare.net/You_Kinjoh/websocket-10621887 Goで実装を試す シンプルにechoサーバを実装すると以下のようになります。 package main import ( "code.google.com/p/go.net/websocket" "io" "net/http" ) func echoHandler(ws *websocket.Conn) { io.Copy(ws, ws) } func main() { http.Handle("/echo", websocket.Handler(echoHandler)) http.Handle("/", http.FileServer(http.Dir("./"))) if err := http.Liste
ユニットテストの書き方 *_test.goの作成 Go言語は、ソースコードのファイル名で製品コードとテストコードを見分けます。 テストコードには、_test.goで終わるファイル名を使用します。 例 main_test.go data_import_test.go testingパッケージのインポート テストコードの冒頭では、testingパッケージをインポートします。 import "testing" testingパッケージには、テスト実行に役立つ以下の構造体が含まれています。 testing.T構造体 テストを失敗させたり、テストメッセージの出力をするために使用します testing.M構造体 テスト実行のメインルーチンを明示的に作成する際に使用します。(本項では触れません) testing.B構造体 ベンチマークテストをする際に使用します。(本項では触れません) テストメソッドの作
Goは標準パッケージが充実しているのが特徴の1つだが、net/httpも例外ではなくHTTPクライアントの処理が簡単に書ける GET 例えばGETでHTTPリクエストを行う処理を実装したい場合、3通りの方法がある http.Get 関数を実行する Client 型の Get(url) メソッドを実行する Client 型の Do(request) メソッドを実行する 単純なアクセスなら1で良い 一番単純な http.Get(url)によるGET url.Values でクエリを組み立てて、Get関数で指定したURLの末尾にEncode結果をパラメータとして付加すればOK url.Valuesはクエリパラメータをkey-value形式で保持する型。ペアを追加するAddや上書きするSet等のメソッドが提供されている 組み立てたクエリはEncodeメソッドを呼び出す事で?key1=value1&
func TestSetsRemoteAddr(t *testing.T) { defer afterTest(t) ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { fmt.Fprintf(w, "%s", r.RemoteAddr) })) defer ts.Close() res, err := Get(ts.URL) if err != nil { t.Fatalf("Get error: %v", err) } body, err := ioutil.ReadAll(res.Body) if err != nil { t.Fatalf("ReadAll error: %v", err) } ip := string(body) if !strings.HasPrefix(ip, "1
package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World") } func main() { http.HandleFunc("/", handler) // ハンドラを登録してウェブページを表示させる http.ListenAndServe(":8080", nil) } ServeHTTPを使う 既存のstructや型に対して、ServeHTTPメソッドを用意することで http.Handleに登録出来るようにする package main import ( "fmt" "net/http" ) type String string func (s String) ServeHTTP(w http
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く