タグ付けされた質問 「go」

Goはオープンソースのプログラミング言語です。それは静的に型付けされており、Cから緩やかに派生した構文で、自動メモリ管理、タイプセーフティ、いくつかの動的型付け機能、可変長配列(スライスと呼ばれる)やキー値マップなどの追加の組み込み型、および大規模な標準ライブラリ。

8
Golangでマップの同等性をテストする方法は?
私はこのようなテーブル駆動のテストケースを持っています: func CountWords(s string) map[string]int func TestCountWords(t *testing.T) { var tests = []struct { input string want map[string]int }{ {"foo", map[string]int{"foo":1}}, {"foo bar foo", map[string]int{"foo":2,"bar":1}}, } for i, c := range tests { got := CountWords(c.input) // TODO test whether c.want == got } } 長さが同じかどうかを確認し、すべてのキーと値のペアが同じかどうかを確認するループを作成できます。しかし、別のタイプのマップに使用する場合は、このチェックを再度作成する必要があります(たとえばmap[string]string)。 私がやったことは、マップを文字列に変換し、文字列を比較したことです。 func checkAsStrings(a,b interface{}) …

25
Goの例とイディオム[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 言語を学ぶためのGoコードはそれほど多くはありません。私がそれを実験しているのは私だけではないと思います。ですから、言語について何か面白いものを見つけたら、ここに例を投稿してください。 私も探しています Goで物事を行う慣用的な方法、 Goに「移植」されたC / C ++の考え方 構文に関する一般的な落とし穴、 本当に面白いものは何でも。
91 go 

9
go getを使用した「認識されないインポートパス」
をインストールしようとしてweb.goいgo get github.com/hoisie/webますが、実行すると戻ります package bufio: unrecognized import path "bufio" package bytes: unrecognized import path "bytes" package crypto/rand: unrecognized import path "crypto/rand" package crypto/sha1: unrecognized import path "crypto/sha1" package crypto/tls: unrecognized import path "crypto/tls" package encoding/base64: unrecognized import path "encoding/base64" package encoding/binary: unrecognized import path "encoding/binary" package encoding/json: unrecognized import path …
91 go  install 

2
テンプレートのマップを反復する
ジムクラス(ヨガ、ピラティスなど)のリストを表示しようとしています。クラスの種類ごとにいくつかのクラスがあるので、すべてのヨガクラス、すべてのピラティスクラスなどをグループ化したいと思います。 この機能を作ってスライスを切り取り、地図を作成しました func groupClasses(classes []entities.Class) map[string][]entities.Class { classMap := make(map[string][]entities.Class) for _, class := range classes { classMap[class.ClassType.Name] = append(classMap[class.ClassType.Name], class) } return classMap } 問題は、どのようにそれを通してI反復は、に応じてすることができ、今でhttp://golang.org/pkg/text/template/、あなたがそれにアクセスする必要があり.Key、私はまた、スライスを通過しない限り、フォーマット、私は(キーを知りませんテンプレートへのキーの)。このマップを自分のビューでアンパックする方法を教えてください。 私が現在持っているのは {{ . }} これは次のようなものを表示します: map[Pilates:[{102 PILATES ~/mobifit/video/ocen.mpg 169 40 2014-05-03 23:12:12 +0000 UTC 2014-05-03 23:12:12 +0000 UTC 1899-12-30 00:00:00 +0000 UTC {PILATES Pilates …
91 go  go-templates 



3
値の代わりに範囲参照
範囲がキーと値の「コピー」を返すことを確認しました。その範囲でアイテムの住所を返す方法はありますか?例 package main import "fmt" type MyType struct { field string } func main() { var array [10]MyType for _, e := range array { e.field = "foo" } for _, e := range array { fmt.Println(e.field) fmt.Println("--") } } http://play.golang.org/p/AFOGG9NGpx ここでは、範囲がフィールドのコピーを送信するため、「フィールド」は変更されません。インデックスを使用する必要がありますか、それとも値を変更する他の方法がありますか? 読んでくれてありがとう。
91 pointers  reference  go 

5
Goは、Javaと同じ微妙なメモリリークの影響を受けますか?
ここに事実があります: Goという言語にはガベージコレクターがあります。 Javaにはガベージコレクションがあります 多くのJavaプログラムには(微妙かどうかにかかわらず)メモリリークがあります メモリリークがあるJavaプログラムの例として(気弱な人のためではなく、質問があなたの信念を揺るがすかもしれません)、「リークを見つける」ボタンさえあるTomcatと呼ばれる小さなJavaプログラムについてここを見てください:方法はありますかTomcatでのアンデプロイメントメモリリークを回避するには? だから私は疑問に思っています:Goで書かれたプログラムは、Javaで書かれたいくつかのプログラムが示すのと同じ種類の(微妙かどうかにかかわらず)メモリリークを示しますか?
91 java  memory-leaks  go 

5
Go Webサーバーを使用して静的HTMLファイルをどのように提供しますか?
go Webサーバーを使用してindex.html(またはその他の静的HTMLファイル)をどのように提供しますか? go Webサーバーから提供できる基本的な静的HTMLファイル(記事など)が必要です。HTMLは、HTMLテンプレートを使用する場合と同様に、goプログラムの外部で変更可能である必要があります。 これは、ハードコードされたテキスト( "Hello world!")のみをホストする私のWebサーバーです。 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(":3000", nil) }
91 go 


8
http.ListenAndServe()を停止する方法
バンドルされているGohttpサーバーと一緒にGorillaWebToolkitのMuxライブラリを使用しています。 問題は、私のアプリケーションではHTTPサーバーが1つのコンポーネントにすぎず、自分の裁量で停止および開始する必要があることです。 http.ListenAndServe(fmt.Sprintf(":%d", service.Port()), service.router)それをブロックと呼ぶと、サーバーの実行を停止できないようです。 私はこれが過去に問題であったことを知っています、それはまだそうですか?新しい解決策はありますか?
90 go 

7
パニックをテストする方法は?
私は現在、特定のコードがパニックに陥ったかどうかをチェックするテストを作成する方法を考えていますか?Goがrecoverパニックをキャッチするために使用することは知っていますが、たとえばJavaコードとは異なり、パニックが発生した場合にスキップするコードや、何を持っているかを実際に指定することはできません。したがって、関数がある場合: func f(t *testing.T) { defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) } }() OtherFunctionThatPanics() t.Errorf("The code did not panic") } OtherFunctionThatPanicsパニックになって回復したのか、機能がまったくパニックにならなかったのか、本当にわかりません。パニックがない場合にスキップするコードと、パニックがある場合に実行するコードを指定するにはどうすればよいですか?回復したパニックがあったかどうかを確認するにはどうすればよいですか?
90 testing  go 


3
GETリクエストを実行し、クエリ文字列を作成します
私はGoを初めて使用しますが、まだすべてを理解しているわけではありません。現代語のNode.js、Angular、jQuery、PHPの多くでは、追加のクエリ文字列パラメーターを使用してGETリクエストを実行できます。 Goでこれを行うのは、見た目ほど簡単ではなく、まだ理解できていません。実行したいリクエストごとに文字列を連結する必要は本当にありません。 サンプルスクリプトは次のとおりです。 package main import ( "fmt" "io/ioutil" "net/http" ) func main() { client := &http.Client{} req, _ := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil) req.Header.Add("Accept", "application/json") resp, err := client.Do(req) if err != nil { fmt.Println("Errored when sending request to the server") return } defer resp.Body.Close() resp_body, _ := ioutil.ReadAll(resp.Body) fmt.Println(resp.Status) …
90 http  go 

7
ユーザーのホームディレクトリを取得する
以下は、実行中のユーザーのホームディレクトリを取得する最良の方法ですか?それとも、私が見てきた特定の機能はありますか? os.Getenv("HOME") 上記が正しい場合、誰かがたまたまこのアプローチがLinux以外のプラットフォーム(Windowsなど)で機能することが保証されているかどうかを知っていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.