關於go的最熱門問題合集

lintao1999發表於2019-02-21

關於 go 的常見問題合集

關於 go 的常見問題合集,有技術問題,上 bug200.com

如何在正規表示式中跨多行匹配任何字元?

例如,這個 regex (.*)<FooBar> 將匹配: abcde<FooBar> 但是如何讓它跨多行匹配呢? abcde fghij<FooBar>

將位元組陣列轉換為字串的最佳方法是什麼?

我需要閱讀 [100] byte 把一堆 string 資料。 因為不是所有的 stringS 正好有 100 個字元長,是 byte array 被填充 0S. 如果我轉過身 [100] byte 到 string 通過:string(byteArray[:]) 尾礦 0s 顯示為^@^@S. 在 C 中 string 將於終止 0,所以我想知道什麼是智慧轉移的最佳方式 byte array 到 string 在 Golang。

如何檢查地圖是否包含一個鍵在 Go 中?

我知道我可以在地圖 M 上迭代, for k, v := range m { ... } 尋找一把鑰匙,但是有沒有一種更有效的方法來測試一把鑰匙在地圖上的存在?謝謝。我找不到答案 language spec.

如何將字串分配給位元組陣列

我要將字串分配給位元組陣列: var arr [20] byte str := "abc" for k, v := range [] byte(str) { arr[k] = byte(v) } 有其他方法嗎?

Go 中有 foreach 迴圈嗎?

有沒有 foreach 用 Go 語言構建?我可以使用 for?

如何在 go 中將 int 值轉換為字串?

i := 123 s := string(i) S 是 “E”,但我想要的是 “123” 請告訴我怎樣才能得到 “123”。 在 Java 中,我可以這樣做: String s = "ab" + "c" // s is "abc" 我怎麼能 concat 有兩條線嗎?

如何在 go 中的 post 請求中傳送 JSON 字串

我嘗試使用 apiary,並建立了一個通用模板,將 JSON 傳送到模擬伺服器,並具有以下程式碼: package main import ( "encoding/json" "fmt" "github.com/jmcvetta/napping" "log" "net/http" ) func main() { url := "http://restap

如何在 Go 中查詢物件型別?

如何在 Go 中找到物件的型別?在 python 中,我只使用 typeof 獲取物件型別。同樣,在 Go 中,有沒有實現相同的方法? 下面是我要迭代的容器: for e := dlist.Front(); e != nil; e = e.Next() { lines := e.Value fmt.Printf(reflect.TypeOf(lines)) } 在本例中,我無法獲取物件行的型別,

在 go 中逐行讀取檔案

我找不到 file.ReadLine 功能在 Go 中。我可以想出如何快速地寫一封信,但只是想知道我是否忽略了這裡的一些東西。如何逐行讀取檔案?

如何使用 go 讀/寫檔案?

我一直在試著自己去學習,但我一直在嘗試讀寫普通檔案。 我可以走到 inFile, _ := os.Open(INFILE, 0, 0),但實際上獲取檔案的內容是沒有意義的,因為讀取函式需要 [] byte 作為引數。 func (file *File) Read(b [] byte) (n int, err Error)

遍歷對映的所有鍵

有沒有辦法在 Go 語言地圖中獲得所有鍵的列表?元素的數量由 len() 但是如果我有這樣的地圖: m := map[string] string{ "key1":"val1", "key2":"val2" }; 如何迭代所有鍵?

如何在 go 中編寫多行字串?

go 是否有類似於 python 的多行字串的內容: """line 1 line 2 line 3""" 如果不是,寫跨越多行的字串的首選方法是什麼?

可選引數?

可以使用可選引數嗎?或者我可以只定義兩個具有相同名稱和不同數量引數的函式嗎?

設定 Go 字串的格式而不列印?

有沒有一種簡單的方法來格式化 Go 中的字串而不列印該字串? 我能做到: bar := "bar" fmt.Printf("foo: %s", bar) 但我希望返回格式化的字串,而不是列印,這樣我可以進一步操作它。 我也可以做一些類似的事情: s := "foo: " + bar 但是,當格式字串很複雜時,這就變得難以讀取;當其中一個或多個部分不是字串時,這就變得很麻煩,必須先進行轉換

沒有 gopath 如何匯入本地包?

我已經用過 GOPATH 但就目前這個問題而言,我所面臨的一切都無濟於事。我希望能夠建立特定於專案的包: myproject/ ├── binary1.go ├── binary2.go ├── package1.go └── package2.go 我試過多種方法,但我怎麼才能 package1.go 在工作中 binary1.go 或 binary2.go 等等? 例如,我希望能夠 import "packa

如何從其 PID 中獲取流程詳細資訊

我維護了一個當前在我的系統(Linux)上執行的程式的 pid 列表,如果我能從這個 pid 中獲得程式的詳細資訊,我會在 golang 中訪問 syscall.getrusage(),但是我沒有得到想要的結果。 有人有相關的想法嗎

如何在 Go[關閉] 中處理配置

我是新來的 at-go 程式設計人員,我想知道:處理 go 程式配置引數的首選方法是什麼性質檔案或伊尼其他情況下的檔案?

如何在戈蘭使用定製包?

我正在嘗試在 Go 中建立和使用自定義包。這可能是很明顯的事情,但我找不到很多關於這方面的資訊。基本上,我在同一個資料夾中有這兩個檔案: 百萬富翁 package mylib type SomeType struct { } 主走 package main import ( "mylib" ) func main() { } 當我嘗試 go run main.go,我得到這個錯誤:

在 go 中測試空字串的最佳方法是什麼?

對於測試非空字串(在 go 中),哪種方法最好(更像 idomatic)? if len(mystring) > 0 { } 或: if mystring != "" { } 或者別的什麼?

從地圖中獲取關鍵點的切片

在 Go 中,有沒有更簡單/更好的方法從地圖中獲取一個關鍵點? 目前我正在迭代對映並將鍵複製到一個切片: i := 0 keys := make([] int, len(mymap)) for k := range mymap { keys[i] = k i++ }

在 go 中將字串轉換為整型?

我正在嘗試轉換從返回的字串 flag.Arg(n) 對 int. Go 中的慣用方法是什麼?

如何獲取當前執行檔案的目錄?

在我使用的 NoDjs 中__dirname. 在戈蘭,這是什麼等價物? 我在谷歌上找到了這篇文章http://andrewbrookins.com/tech/golang-get-directory-of-the-current-file/. 他用下面的程式碼 _, filename, _, _ := runtime.Caller(1) f, err := os.Open(path.Join(path

開始構建:“找不到包”(即使設定了 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.

如何在戈蘭得到 JSON 響應

我正在嘗試從 Web 讀取 JSON 資料,但該程式碼返回空結果。我不知道我在這裡做錯了什麼。 package main import "os" import "fmt" import "net/http" import "io/ioutil" import "encoding/json" type Tracks struct { Toptracks [] Toptracks_info } ty

Gmail:530 5.5.1 需要身份驗證。瞭解更多

此 Go 程式成功地從我的家庭計算機傳送電子郵件,但在 DigitalOcean 上的虛擬伺服器上收到以下錯誤: panic: 530 5.5.1 Authentication Required. Learn more at 程式碼如下: auth := smtp.PlainAuth("", "bjorkbjorksen@gmail.com", "PASSWORD", "smtp.gmail.com")

無法將資料(型別介面)轉換為型別字串:需要型別斷言

我剛開始玩這個 notify 包裹。 起初我有這樣的程式碼: func doit(w http.ResponseWriter, r *http.Request) { notify.Post("my_event", "Hello World!") fmt.Fprint(w, "+OK") } 我想把換行符附加到 Hello World! 但不在函式中 doit 上面,因為那是很瑣碎的,但是在 ha

無法下載,$gopath 未設定

我想用安裝 json2csvgo get github.com/jehiah/json2csv 但我收到這個錯誤: package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path 如何在 MacOS 上解決這個問題有什麼幫助嗎?

將 go 結構轉換為 json

我正在嘗試使用 json 但我得到的只是{}. 我確信這是非常明顯的事情,但我看不到。 package main import ( "fmt" "encoding/json" ) type User struct { name string } func main() { user := &User{name:"Frank"} b, err :=

什麼是比 python&s http.server(或 simplehttpserver)更快的替代方案?

蟒蛇 http.server(或 simplehttpserver for python 2)是從命令列服務當前目錄內容的一種很好的方法: python -m http.server 然而,就網路伺服器而言,這是非常緩慢的… 它的行為就像是單執行緒的,並且在使用 RequireJS 載入 JavaScriptAMD 模組時偶爾會導致超時錯誤。載入一個沒有影像的簡單頁面可能需要 5 到 10 秒。 有什麼比這更方便的選

Go 中無檢測

我在 Go 中看到了很多檢測 nil 的程式碼,如下所示: if err != nil { // handle the error } 但是,我有一個這樣的結構: type Config struct { host string port float64 } config 是 config 的一個例項,當我這樣做時: if config == nil { } 有編譯錯誤

如何在 go 中獲取當前時間戳?

在 go 中獲取當前時間戳並轉換為字串的最佳方法是什麼?我需要日期和時間,例如,YYYYMMDDHHMMSS 格式。

將文字檔案讀取到字串陣列中(並寫入)

在字串陣列中讀(寫)一個文字檔案的能力是我認為相當普遍的要求。當從一種語言開始時,它也非常有用,它消除了最初訪問資料庫的需要。戈蘭有嗎?例如 func ReadLines(sFileName string, iMinLines int) ([] string, bool) { 和 func WriteLines(saBuff[] string, sFilename string) (bool) {

如何在 Ubuntu Precise 中安裝 Go 的當前版本

執行 sudo apt-get install golang-stable,我得到 Go 版本 go1.0.3. 有什麼安裝方法嗎 go1.1.1?

golang 將專案附加到切片

為什麼 a 保持不變?做 append() 生成新切片? package main import ( "fmt" ) var a = make([] int, 7, 8) func Test(slice [] int) { slice = append(slice, 100) fmt.Println(slice) } func main() { for i := 0;

在 Go&S HTTP 包中,如何獲取 POST 請求的查詢字串?

我正在使用 http 包從開始處理後請求。如何從 Request 物件?我從官方檔案中找不到答案。

在 go 中列出目錄

我一直在試圖找出如何在 Go 中簡單地列出單個目錄中的檔案和資料夾。 我找到了 filepath.Walk 但它會自動進入子目錄,我不想這樣。我所有的其他搜尋都沒有找到更好的結果。 我確信這個功能是存在的,但是很難找到。如果有人知道我該去哪裡,請告訴我。謝謝。

將介面轉換為 int

我試圖從 JSON 中獲取一個值並將其強制轉換為 int,但它不起作用,我不知道如何正確地執行它。 以下是錯誤訊息: ...cannot convert val (type interface {}) to type int: need type assertion 程式碼: var f interface{} err = json.Unmarshal([] byte(jsonStr),

設定 HTTP 頭

我正試圖在 Go Web 伺服器中設定一個標題。我在用 gorilla/mux 和 net/http 包裝。 我想設定 Access-Control-Allow-Origin: *允許跨域 Ajax。 這是我的通行密碼: func saveHandler(w http.ResponseWriter, r *http.Request) { // do some stuff with the request data

如何拆分字串並將其分配給 golang 中的變數?

在 python 中,可以拆分字串並將其分配給變數: ip, port = '127.0.0.1:5432'.split(':') 但在戈蘭,這似乎不起作用: ip, port := strings.Split("127.0.0.1:5432", ":") // assignment count mismatch: 2 = 1 問題:如何拆分字串並在一個步驟中分配值?

如何在指定的檔案中執行測試用例?

我的包測試用例分散在多個檔案中,如果我執行 go test <package_name>它執行包中的所有測試用例。 不過,沒有必要執行所有這些程式。有沒有方法為指定檔案 go test 執行,以便它只執行檔案中定義的測試用例?

如何編譯由多個檔案組成的 GO 程式?

所以我有一個由三個檔案組成的小程式,它們都屬於同一個包(main),但是當我執行 “go build main.go” 時,構建不會成功。當它只是一個檔案(main.go)時,一切都正常。現在我花了點力氣來分離程式碼,看起來編譯器找不到從 main.go 中取出並放入這兩個其他檔案中的內容(它們與 main.go 位於同一目錄中)。導致 “未定義的” 型別 “錯誤。 我讀了一些關於設定 gopath 變數的內容,所以我嘗

如何將持續時間乘以整數?

為了測試併發的 goroutine,我在函式中新增了一行,以使返回所需的隨機時間(最多一秒鐘) time.Sleep(rand.Int31n(1000) * time.Millisecond) 但是當我編譯時,我得到了這個錯誤 .\crawler.go:49:無效操作:rand.int31n(1000)*time.millisecond(不匹配的型別 int32 和 time.duration) 有

如何從正在執行的 Docker 容器讀取檔案和 stdout

為了從正在執行的 Docker 容器中讀取檔案和 stdout,如何在主機中啟動應用程式? 基本上我想這樣做: docker start containerid ./myapp // This app will somehow have access files and stdout generated by the container I just stared. 我該怎麼做呢?更具體地

在 go 中將 float64 轉換為 int

如何在 go 中將 float64 轉換為 int?我知道 strconv 包可以用於在字串之間轉換任何內容,但不能在非字串的資料型別之間轉換。我知道我可以用 fmt.Sprintf 將任何內容轉換為字串,然後 strconv 到我需要的資料型別,但是這個額外的轉換看起來有點笨拙——有更好的方法嗎?

歌朗隨機數發生器如何正確播種

我正在嘗試在 go 中生成一個隨機字串,下面是我迄今為止編寫的程式碼: package main import ( "bytes" "fmt" "math/rand" "time" ) func main() { fmt.Println(randomString(10)) } func randomString(l int) string { va

切片的最後一個元素

什麼是 Go 提取的最後一個元素的方法 slice? var slice [] int slice = append(slice, 2) slice = append(slice, 7) slice[len(slice)-1:][0] // Retrieves the last element 上面的解決方案是可行的,但看起來很尷尬。

“無法識別的匯入路徑” with 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/ran

函式能否在 go 中作為引數傳遞?

在 Java 中,我可以做一些類似的事情。derp(new Runnable { public void run () { /* run this sometime later */ } }) 稍後在方法中 “執行” 程式碼。處理(匿名的內部類)是一種痛苦,但它是可以做到的。 Go 是否有一些可以方便作為引數傳入函式/回撥的功能?

在 go 中提取子字串

我正在嘗試從控制檯讀取整行(包括空白),然後處理它。使用 bufio.readstring,新行字元與輸入一起讀取,因此我想出了以下程式碼來修剪新行字元: input,_:=src.ReadString('\n') inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string 有沒有更慣用的方法?也就是說,是否已經有一

宣告常量陣列

我已經嘗試過: const ascii = "abcdefghijklmnopqrstuvwxyz" const letter_goodness [] float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0

安裝 Go with BREW 並執行 GoTour

我在跟蹤http://tour.golang.org/Gotour。直到第三步告訴你可以在你的系統上安裝 之後,我通過以下方式安裝了 BREW 的 Go 語言: brew install hg brew install go 然後我下載了 Gotour by: go get code.google.com/p/go-tour/gotour 當我試圖啟動 Gotour 時,它沒有識別出命令: $ gotour

golang 中是否有迭代整數範圍的方法?

Golang 的範圍可以迭代地圖和切片,但是我想知道是否有一種方法可以迭代一系列的數字,類似於這樣 for i := range [1..10] { fmt.Println(i) } 或者有沒有一種方法可以像 ruby 那樣表示 go 中的整數範圍?

如何將 int 改為 int64?

我試圖在 go 中將一個整數轉換成 integer64,但我運氣不好。有人知道一個簡單的方法嗎?

從結構中移除欄位或將其隱藏在 JSON 響應中

我在 Go 中建立了一個 API,在被呼叫時執行查詢,建立一個結構例項,然後將該結構編碼為 JSON,然後再傳送回撥用方。現在我想允許呼叫者通過傳入 “fields” get 引數來選擇他們想要返回的特定欄位。 這意味著根據欄位值,我的結構將更改。是否有任何方法可以從結構中移除欄位?或者至少在 JSON 響應中動態隱藏它們?(注意:有時我有空值,所以 json omitempty 標記在這裡不起作用)如果這兩者都不可能

字串的零是什麼?

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key 檔案上說: new key 建立一個新鍵。kind 不能為空。一個或兩個 StringID 和 IntId 必須零. 如果兩者都為零,則鍵 返回不完整。父級必須是完整鍵或零。 字串的零是什麼? 我試過 0 和 nil 我有錯誤,比如:

如何將整個檔案讀取為字串變數

我有很多小檔案,我不想一行一行地讀。 Go 中是否有將整個檔案讀取為字串變數的函式?

無法載入 package:package.:沒有可構建的 go 原始檔

以下是錯誤訊息: % go get can't load package: package .: no buildable Go source files in /Users/7yan00 % echo $GOPATH /Users/7yan00/Golang 您將如何解決該錯誤?

如何使用 go 漂亮地列印 JSON?

有人知道在 Go 中漂亮列印 JSON 輸出的簡單方法嗎? 股票http://golang.org/pkg/encoding/json/包似乎不包含此功能(編輯:是的,請看接受的答案)而且快速的谷歌不會發現任何明顯的東西。 我要找的用途都是漂亮的列印結果 json.Marshal 並且只需從任何地方格式化一個充滿 JSON 的字串,這樣就更容易出於除錯目的進行讀取。

在 go 中對多個返回值執行轉換/型別斷言的慣用方法

在 go 中轉換多個返回值的慣用方法是什麼? 你能在一行中完成它嗎,或者你需要使用臨時變數,比如我在下面的例子中所做的? package main import "fmt" func oneRet() interface{} { return "Hello" } func twoRet() (interface{}, error) { return "Hejsan", nil }

你怎麼清除圍棋中的一片?

清除 Go 中切片的適當方法是什麼? 這是我在 go forums: // test.go package main import ( "fmt" ) func main() { letters := [] string{"a", "b", "c", "d"} fmt.Println(cap(letters)) fmt.Println(len(letters))

如果還有其他語句,怎麼做一行?

我可以在 go(golang)中編寫一個帶有變數賦值的 if-else 語句嗎,就像在 php 中那樣(例如): $var = ( $a > $b )? $a: $b; 目前我必須使用以下方法: var c int if a > b { c = a } else { c = b } 很抱歉,如果這個控制語句和在站點和谷歌搜尋中找不到資訊,我就記不起它的名字了。:

使用 “http.newrequest(…)” 生成 URL 編碼的 post 請求

我想向 API 發出一個 post 請求,將資料作為 application/x-www-form-urlencoded 內容型別。由於我需要管理請求頭,因此使用 http.NewRequest(method, urlStr string, body io.Reader) 建立請求的方法。對於這個 POST 請求,我將資料查詢附加到 URL,並將正文保留為空,如下所示: package main import (

交叉編譯繼續 OSX?

我正試圖在 OSX 上交叉編譯一個 go 應用程式來構建 Windows 和 Linux 的二進位制檔案。我把網上能找到的東西都讀了。我發現的最接近的例子已經發表(除了許多關於 Go Nuts 郵件列表的未完成討論之外): http://solovyov.net/en/2012/03/09/cross-compiling-go/ 但它在我的安裝上不起作用。我已經走了 1.0.2。因為 1.0.2 是最近的版本,所以在我看來,

如何使用錯誤證照執行 HTTPS 請求?

說我想得到https://golang.orggolang.org(ssl)有一個錯誤的證照,該證照頒發給*.appspot.com 所以當我執行這個時:程式設計。當前 package main import ( "log" "net/http" ) func main() { _, err := http.Get("https://golang.org/") if

在記事本 + 中新增使用者定義的語言

我正在嘗試在記事本 + 中新增 Go 程式語言的語法外掛。 http://docs.notepad-plus-plus.org/index.php/User_Defined_Language_Files#How_to_install_user_defined_language_files 具有用於此類使用者定義語言的儲存庫。我下載並解壓縮了 go 檔案,其中包含一個自述檔案、一個使用者定義的 lang_go.xml

如何阻止 Goroutine

我有一個 goroutine,它呼叫一個方法,並在通道上傳遞返回值: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() 我怎樣才能阻止這樣的暴行?

Golang 的日期/時間比較

在歌朗進行日期比較有什麼選擇嗎?我必須獨立地根據日期和時間對資料進行排序。所以我可以允許一個物件發生在一個日期範圍內,只要它也發生在一個時間範圍內。在這個模型中,我不能簡單地選擇最早的日期、最早的時間/最晚的日期、最晚的時間和 unix()秒來比較它們。我真的很感激你的建議。 最後,我編寫了一個時間分析字串比較模組來檢查時間是否在範圍內。然而,這並不順利;我有一些懸而未決的問題。我會把它貼在這裡只

go,golang,formatfoat:將浮點數轉換為字串 [重複]

這個問題已經有了答案: How to format floating point numbers into a string using Go 1 答

從標準輸入中讀取整數

我怎麼用 fmt.ScanfGo 中的函式從標準輸入中獲取整數輸入? 如果不能用 fmt.Scanf,讀取單個整數的最佳方法是什麼?

如何在 C++ 中使用 GO?

在新的 Go 語言,我怎麼稱呼 C++ 程式碼?換句話說,我如何包裝我的 C++ 類並在 GO 中使用它們?

是否可以捕獲 ctrl+c 訊號並以 “延遲” 的方式執行清除功能?

我想捕捉 CTRL+C(SIGINT)從控制檯傳送的訊號,列印出部分執行總計。 這在戈蘭有可能嗎? 注意:當我第一次釋出這個問題時,我很困惑 CTRL+C 存在 SIGTERM 而不是 SIGINT.

如何在執行時檢查 Go 語言中的變數型別

我有幾個這樣宣告的 C 函式 CURLcode curl_wrapper_easy_setopt_long(CURL* curl, CURLoption option, long param); CURLcode curl_wrapper_easy_setopt_str(CURL* curl, CURLoption option, char* param); 我想把它們作為一個整體暴露出來 func

如何在 HTTP GET 請求中設定頭?

我正在執行一個簡單的 HTTP GET IN GO: client := &http.Client{} req, _ := http.NewRequest("GET", url, nil) res, _ := client.Do(req) 但是我無法在 doc 謝謝

如何確定介面的 “實際” 型別?

我沒有找到一個好的資源來使用 interface{}型別。例如 package main import "fmt" func weirdFunc(i int) interface{} { if i == 0 { return "zero" } return i } func main() { var i = 5 var w = weirdF

go/golang 將日誌寫入檔案

我在和戈蘭寫日誌檔案。 我試過幾種方法,但都失敗了。這就是我所嘗試的: func TestLogging(t *testing.T) { if ! FileExists("logfile") { CreateFile("logfile") } f, err := os.Open("logfile") if err != nil { t.

如何在戈蘭進行檔案系統掃描?

我需要編寫一個函式,當給定資料夾的路徑時, 掃描該資料夾中的根檔案。 然後我需要在那個資料夾中顯示目錄結構。 我知道如何做 2(我將使用 JStree 在瀏覽器中顯示它)。 請幫我寫第 1 部分,比如從哪裡開始寫這樣的 在 GO 中起作用。

golang 中的 [] 字串和…字串有什麼區別?

圍棋語言 [] string 字串陣列 我們也使用...string 作為引數 區別是什麼? 函式定義: func f(args ...string) {} 我可以這樣呼叫這個函式嗎? args := [] string{"a", "b"} f(args)

如何獲取字串中的字元數?

如何在 go 中獲取字串的字元數? 例如,如果我有一個字串"hello"方法應該返回 5. 我看到了 len(str) 返回位元組數而不是字元數,所以 len("£") 返回 2 而不是 1,因為英鎊是用兩個 UTF-8 位元組編碼的。

如何在 golang 結構中設定和獲取欄位?

建立這樣的結構後: type Foo struct { name string } func (f Foo) SetName(name string){ f.name=name } func (f Foo) GetName string (){ return f.name } 如何建立 foo 的新例項並設定和獲取名稱? 我嘗試了以下方法: p:=new(Fo

如何在 go 中傳送 post 請求?

我正試圖提出一個帖子請求,但我做不到。另一邊什麼也沒收到。 這就是它應該如何工作的嗎?我知道 PostForm 但是我想我不能用它,因為它不能用 httputil 對吧? hc := http.Client{} req, err := http.NewRequest("POST", APIURL, nil) form := url.Values{} form.Add("ln", c.ln) form.A

go 中的空值

如何在 go 中表示 “空” 值? type Node struct { next *Node data interface{} } 我想說 return &Node{ data: NULL, next: NULL }

在戈蘭,有沒有一種每隔一段時間做重複性工作的方法?

有沒有一種方法可以在 go 中執行重複的後臺任務?我在想 Timer.schedule(task, delay, period) 在 Java 中。我知道我可以用 Goroutine 和 Time.sleep() 但是我想要一些容易停下來的東西。 這是我得到的,但在我看來很難看。有更乾淨/更好的方法嗎? func oneWay() { var f func() var t *time.Timer

如何在 golang 中設定 http.get()請求的超時?

我在 Go 中建立了一個 URL 獲取器,並有一個要獲取的 URL 列表。我傳送 http.Get() 請求每個 URL 並獲取其響應。 resp,fetch_err := http.Get(url) 如何為每個 GET 請求設定自定義超時?(預設時間很長,這會使我的回遷器非常慢。)我希望回遷器有一個大約 40-45 秒的超時,在此之後它將返回 “請求超時”,並轉到下一個 URL。 我怎樣才能做到這一點?

在模板中迭代對映

我正在展示一個健身課程列表(瑜伽、普拉提等)。每種型別的課程都有幾個課程,所以我想把所有的瑜伽課程和普拉提課程都分組,等等。 我做這個函式是為了取一個切片並繪製它的地圖 func groupClasses(classes [] entities.Class) map[string][] entities.Class { classMap := make(map[string][] entitie

sync.waitgroup 示例正確嗎?

這個例子的用法是 sync.WaitGroup 對的?它給出了預期的結果,但我不確定 wg.Add(4) 以及 wg.Done(). 一次新增四個 goroutine 是否有意義 wg.Add()? http://play.golang.org/p/ecvYHiie0P package main import ( "fmt" "sync" "time" ) func dosomethi

在 GO 程式設計中如何從 [] 位元組轉換為 int

我需要通過 TCP 建立一個客戶機-伺服器示例。在客戶端,我讀取了 2 個數字,然後將它們傳送到伺服器。我面臨的問題是我不能從 [] byte 到 int,因為通訊只接受型別為的資料 [] byte. 有轉換的方法嗎 [] byte 到 int 或者我可以傳送 int 到伺服器? 一些示例程式碼將非常感謝。 謝謝。

在 Go 中刪除地圖 [鍵]?

我有一張地圖: var sessions = map[string] chan int{} 如何刪除 sessions[key]?我試過: sessions[key] = nil,false; 那不管用。 更新(2011 年 11 月): 刪除對映項的特殊語法將在中刪除。Go version 1: Go 1 將刪除特殊地圖分配並引入新的內建功能,delete:delete(m, x) 將刪除表示式檢

將 go map 轉換為 json

我試圖將我的 go 對映轉換為 json 字串,encoding/json 封送,但它導致空字串。 這是我的程式碼: package main import ( "encoding/json" "fmt" ) type Foo struct { Number int json:"number"我的輸出是: Title string json:"title"

如何檢查空結構?

我定義了一個結構… type Session struct { playerId string beehive string timestamp time.Time } 有時我會給它分配一個空會話(因為不可能為零) session = Session{}; 然後我要檢查,如果它是空的: if session == Session{} { // do stuff

錯誤 “can&39;t load package:package my prog:found packages my prog and main””

在我的路徑中,我有這樣的東西: /bin/ /pkg/ /src/ /src/my_prog/ /src/my_prog/main.go /src/my_prog/d_interface.go /src/my_prog/d_struct_that_implements_the_interface.go 在 main.go 我有 package main 在 d_interface.go 和 d_struct_

建議使用什麼方式從 Go 連線到 MySQL?

我正在尋找一個可靠的解決方案從 Go 連線到 MySQL 資料庫。我在周圍見過一些庫,但是很難確定完整性和當前維護的不同狀態。我沒有複雜的需求,但是我想知道人們依賴什麼,或者什麼是連線到 MySQL 的最標準的解決方案。

如何找出切片中的元素位置?

如何確定切片中元素的位置? 我需要如下的東西: type intSlice [] int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }

Golang 應用程式自動生成版本控制

每次編譯 Go 應用程式時,是否可以自動增加次要版本號? 我想在我的程式中設定一個版本號,帶有一個自動增量部分: $ myapp -version MyApp version 0.5.132 0.5 是我設定的版本號,132 是一個每次編譯二進位制檔案時自動遞增的值。 這是可行的嗎?

將整數轉換為位元組陣列

我有一個函式,它接收 [] byte 但我所擁有的是 int,進行這種轉換的最佳方法是什麼? err = a.Write([] byte(myInt)) 我想我可以走很遠的路,把它變成一個字串,然後把它放進位元組,但聽起來很難看,我想還有更好的方法可以做到。

go 中的 toString()函式

這個 strings.Join 函式只接受字串切片: s := [] string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", ")) 但如果能夠傳遞實現 ToString() 功能。 type ToStringConverter interface { ToString() string } 在 Go 中是否有類似的東西,或者我需要裝飾

為什麼我不能用 golang 中的 “copy()” 複製一個切片?

我需要在 Go 中製作一份切片的副本,並閱讀文件 copy 功能由我決定。 copy 內建函式將元素從源切片複製到 目標切片。(在特殊情況下,它還將從 字串到位元組片。)源和目標可能重疊。 copy 返回複製的元素數,這是 長度(SRC)和長度(DST)。 但當我這樣做 arr := [] int{1, 2, 3} tmp := [] int{} copy(tmp, arr) fmt.Println(tmp)

gobin 未設定:無法執行 go 安裝

我正在嘗試為 main.go 檔案安裝自定義包。但是,當我跑步時 go install custom.go 我有這個錯誤 go install: no install location for .go files listed on command line (GOBIN not set) 我如何設定戈賓?

如何執行主包中包含多個檔案的專案?

我的主包中目前只有一個檔案,名為 main.go. 我如何拆分 main.go 在多個檔案中,不建立單獨的包,因為程式碼不可重用。 我想要這樣的目錄結構: $ ls foo main.go bar.go bar.go package main import "fmt" func Bar() { fmt.Println("Bar") } 然後在 main.go package main f

歌朗:如何讀取文字檔案?[複製品]

這個問題已經有了答案: How can I read a whole file into a string variable 4 答

遍歷 go 中結構的欄位

基本上,迭代 struct 是這樣的: type Example struct { a_number uint32 a_string string } //... r := &Example{(2 << 31) - 1, "...."}: for _, d:= range [] interface{}{ r.a_number, r.a_string, } {

更多原創文章乾貨分享,請關注公眾號
  • 關於go的最熱門問題合集
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章