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

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

7
一定の間隔で繰り返し作業を行う方法はありますか?
Goで反復的なバックグラウンドタスクを実行する方法はありますか?Timer.schedule(task, delay, period)Javaのようなものを考えています。私はこれをgoroutineとTime.sleep()で実行できることを知っていますが、簡単に止まるものが欲しいです。 これは私が手に入れたものですが、私には醜く見えます。よりクリーンで良い方法はありますか? func oneWay() { var f func() var t *time.Timer f = func () { fmt.Println("doing stuff") t = time.AfterFunc(time.Duration(5) * time.Second, f) } t = time.AfterFunc(time.Duration(5) * time.Second, f) defer t.Stop() //simulate doing stuff time.Sleep(time.Minute) }
148 go 

6
Goのモック関数
私は小さな個人プロジェクトをコーディングすることで囲碁を学んでいます。小さいながら、厳密なユニットテストを行って、最初からGoの良い習慣を学ぶことにしました。 ささいな単体テストはすべて上手くできていましたが、今は依存関係に困惑しています。一部の関数呼び出しをモック呼び出しに置き換えられるようにしたい。これが私のコードのスニペットです: func get_page(url string) string { get_dl_slot(url) defer free_dl_slot(url) resp, err := http.Get(url) if err != nil { return "" } defer resp.Body.Close() contents, err := ioutil.ReadAll(resp.Body) if err != nil { return "" } return string(contents) } func downloader() { dl_slots = make(chan bool, DL_SLOT_AMOUNT) // Init the …
147 unit-testing  mocking  go 



10
プライベートリポジトリを「取得」する適切な方法は何ですか?
私は$ go get多くのグーグルの試みの後、プライベートリポジトリで作業する方法を探しています。 最初の試み: $ go get -v gitlab.com/secmask/awserver-go Fetching https://gitlab.com/secmask/awserver-go?go-get=1 https fetch failed. Fetching http://gitlab.com/secmask/awserver-go?go-get=1 Parsing meta tags from http://gitlab.com/secmask/awserver-go?go-get=1 (status code 200) import "gitlab.com/secmask/awserver-go": parse http://gitlab.com/secmask/awserver-go?go-get=1: no go-import meta tags package gitlab.com/secmask/awserver-go: unrecognized import path "gitlab.com/secmask/awserver-go はい、ログイン情報を提供する方法がわからなかったため、メタタグは表示されませんでした。 2回目の試行: https://gist.github.com/shurcooL/6927554をフォローしてください。.gitconfigに設定を追加します。 [url "ssh://git@gitlab.com/"] insteadOf = https://gitlab.com/ $ go get -v …
143 git  go 


4
* Structを* Interfaceに割り当てることができないのはなぜですか?
私はGoツアーを進めているだけですが、ポインタとインターフェースについて混乱しています。このGoコードがコンパイルされないのはなぜですか? package main type Interface interface {} type Struct struct {} func main() { var ps *Struct var pi *Interface pi = ps _, _ = pi, ps } つまり、Structがである場合Interface、なぜがにならない*Structの*Interfaceですか? 私が得るエラーメッセージは: prog.go:10: cannot use ps (type *Struct) as type *Interface in assignment: *Interface is pointer to interface, not interface
142 go 

6
OSXでGoをクロスコンパイルしますか?
OS Xでgoアプリをクロスコンパイルして、WindowsとLinuxのバイナリをビルドしようとしています。ネットで見つけたものをすべて読みました。私が見つけた最も近い例が公開されています(go-nutsメーリングリストでの多くの未完成の議論は別として): http://solovyov.net/en/2012/03/09/cross-compiling-go/ それでも私のインストールでは動作しません。1.0.2に移行しました。1.0.2はごく最近のバージョンなので、上記の例はすべてこのバージョンには適用されないようです。 ./make.bash --no-cleanENV varsを386 / windowsに設定して試してみましたが、ビルドはビルドdarwin/amd64されますが、別のコンパイラーをビルドすることを想定しているENVでの設定を完全に無視して、私のインストール用にビルドをビルドします。 どのようにしてそれを行うことができますか?


3
プロジェクトのすべてのテストを「テストする」方法は?
このgo testコマンドは*_test.go、1つのディレクトリ内のファイルのみをカバーします。 私go testはプロジェクト全体にしたいのです。つまり、テストは*_test.godir内のすべてのファイルと、./dirの下のすべての親ツリーdir をカバーする必要があります./。 これを行うコマンドは何ですか?
141 testing  go 

6
スライスの要素を削除する
func main() { a := []string{"Hello1", "Hello2", "Hello3"} fmt.Println(a) // [Hello1 Hello2 Hello3] a = append(a[:0], a[1:]...) fmt.Println(a) // [Hello2 Hello3] } 追加機能を使用したこの削除トリックはどのように機能しますか? それは最初の要素(空の配列)の前にすべてをつかんでいるようです 次に、最初の要素(位置0)の後にすべてを追加します。 ...(ドットドットドット)は何をしますか?
139 go 

5
Goビルド:「パッケージが見つかりません」(GOPATHが設定されている場合でも)
GOPATH適切に設定したにもかかわらず、自分のパッケージを見つけるために「ビルド」または「実行」することができません。何が悪いのですか? $ echo $GOROOT /usr/local/go $ echo $GOPATH /home/mitchell/go $ cat ~/main.go package main import "foobar" func main() { } $ cat /home/mitchell/go/src/foobar.go package foobar $ go build main.go main.go:3:8: import "foobar": cannot find package
139 build  go  package 

7
Goでの日付文字列の解析
"2014-09-12T11:45:26.371Z"Goで日付文字列を解析してみました。 コード layout := "2014-09-12T11:45:26.371Z" str := "2014-11-12T11:45:26.371Z" t, err := time.Parse(layout , str) 私はこのエラーを受け取りました: 解析時間「2014-11-12T11:47:39.489Z」:範囲外の月 この日付文字列を解析するにはどうすればよいですか?
138 date  go 

2
構造体で複数の名前タグを定義する方法
mongoデータベースからアイテムを取得する必要があるため、次のような構造体を定義しました type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` } 次に、JSONにエンコードする必要もありますが、フィールドを大文字にエンコードするため(pageIdではなくPageIdを取得する)、JSONのフィールドタグも定義する必要があります。私はこのようなものを試しましたが、うまくいきませんでした: type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` } それでは、これをどのように行うことができますか?構造体で複数の名前タグを定義しますか?
137 json  struct  go 

3
「。」とは (ドットまたはピリオド)Goインポートステートメントでは?
Goチュートリアル、および私が調べたほとんどのGoコードでは、パッケージは次のようにインポートされます。 import ( "fmt" "os" "launchpad.net/lpad" ... ) しかし、http: //bazaar.launchpad.net/~niemeyer/lpad/trunk/view/head : /session_test.goでは、gocheckパッケージは.(ピリオド)を指定してインポートされます。 import ( "http" . "launchpad.net/gocheck" "launchpad.net/lpad" "os" ) .(期間)の意味は何ですか?
135 import  go 

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