Articles of vai

Come si compila da Windows a Linux?

Ho installato Go 1.2 su una macchina Windows, scritto un programma fittizio e impostato le variabili d’ambiente GOARCH e GOOS su “AMD64” e “linux”. Quando rilascio il comando ” go build “, ricevo un errore: go build runtime: linux/amd64 must be bootstrapped using make.bat Cosa significa questo?

Accedere alla proprietà struct per nome

Ecco un semplice programma go che non funziona: package main import “fmt” type Vertex struct { X int Y int } func main() { v := Vertex{1, 2} fmt.Println(getProperty(&v, “X”)) } func getProperty(v *Vertex, property string) (string) { return v[property] } Errore: prog.go: 18: operazione non valida: v [proprietà] (indice di tipo * Vertex) Quello […]

Golang: struttura anonima e struttura vuota

http://play.golang.org/p/vhaKi5uVmm package main import “fmt” var battle = make(chan string) func warrior(name string, done chan struct{}) { select { case opponent := <-battle: fmt.Printf("%s beat %s\n", name, opponent) case battle <- name: // I lost 🙁 } done <- struct{}{} } func main() { done := make(chan struct{}) langs := []string{"Go", "C", "C++", "Java", "Perl", […]

golang POST i dati usando il Content-Type multipart / form-data

Sto cercando di caricare immagini dal mio computer su un sito web usando go. Di solito, io uso uno script bash che invia un file e una chiave al server: curl -F “image”[email protected]”IMAGEFILE” -F “key”=”KEY” URL funziona bene, ma sto cercando di convertire questa richiesta nel mio programma golang. http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/ Ho provato questo link e […]

Come confrontare struct, slice, map sono uguali?

Voglio verificare che due strutture siano uguali, ma abbiamo qualche problema: package main import ( “fmt” “reflect” ) type T struct { X int Y string Z []int M map[string]int } func main() { t1 := T{ X:1, Y:”lei”, Z:[]int{1,2,3}, M:map[string]int{ “a”:1, “b”:2, }, } t2 := T{ X:1, Y:”lei”, Z:[]int{1,2,3}, M:map[string]int{ “a”:1, “b”:2, }, […]

Chiama uno Struct e il suo Metodo per nome in Go?

Ho trovato una funzione chiamata MethodByName() qui http://golang.org/pkg/reflect/#Value.MethodByName ma non è esattamente quello che voglio! (forse perché non so come usarlo … non riesco a trovare alcun esempio con esso). Quello che voglio è: type MyStruct struct { //some feilds here } func (p *MyStruct) MyMethod { println(“My statement.”); } CallFunc(“MyStruct”, “MyMethod”); //print out My […]

Come verificare se un file esiste in Go?

La libreria standard di Go non ha una funzione destinata esclusivamente a verificare se un file esiste o meno (come os.path.exists di Python). Qual è il modo idiomatico per farlo?

Gestione dei processi per il server Web Go

Sono un nuovo programmatore di Go, proveniente dal mondo dello sviluppo di applicazioni e servizi web. Ci scusiamo se questa è una domanda da derpare di herp, ma il mio cercare su google per una risposta non ha trovato nulla. Inoltre, si tratta di un territorio di errore del server borderline, ma poiché sono più […]

mgo: le prestazioni delle query sembrano costantemente lente (500-650ms)

Il mio livello dati utilizza l’aggregazione Mongo di una quantità decente e, in media, le query richiedono 500-650 ms per la restituzione. Sto usando mgo . Di seguito viene mostrata una funzione di query di esempio che rappresenta la maggior parte delle mie query. func (r userRepo) GetUserByID(id string) (User, error) { info, err := […]

go programma client genera molti socket nello stato TIME_WAIT

Ho un programma go che genera molte richieste HTTP da più coroutine. dopo aver eseguito per un po ‘, il programma sputa un errore: connect: non può assegnare l’indirizzo richiesto. Quando si verifica con netstat, ottengo un numero elevato (28229) di connessioni in TIME_WAIT. L’alto numero di socket TIME_WAIT si verifica quando il numero di […]