Articles of partire

Perché fmt.Println all’interno di una goroutine non stampa una riga?

Ho il codice seguente: package main import “net” import “fmt” import “bufio” func main() { conn, _ := net.Dial(“tcp”, “irc.freenode.net:6667”) reader := bufio.NewReader(conn) go func() { str, err := reader.ReadString(‘\n’) if err != nil { // handle it fmt.Println(err) } fmt.Println(str) }() } Se non ho il codice che legge dal buffer in una goroutine, […]

golang: slice of struct! = slice of interface it implementa?

Ho un Model interfaccia, che è implementato da struct Person . Per ottenere un’istanza di modello, ho le seguenti funzioni di supporto: func newModel(c string) Model { switch c { case “person”: return newPerson() } return nil } func newPerson() *Person { return &Person{} } L’approccio sopra riportato mi consente di restituire un’istanza Persona correttamente […]

c’è un modo per creare un’istanza di una struct da una stringa?

Data una struttura: type MyStruct struct { A int B int } e una stringa con il nome della struttura a := “MyStruct” o a := “mypkg.MyStruct” Come posso creare un’istanza della mia struct dal nome della stringa piuttosto che dalla struct? L’idea è che vorrei creare un’applicazione con tutte le strutture collegate nel binario […]

Perché non posso assegnare un * Struct a un * Interfaccia?

Sto solo lavorando attraverso il tour Go , e sono confuso su puntatori e interfacce. Perché questo codice Go non viene compilato? package main type Interface interface {} type Struct struct {} func main() { var ps *Struct var pi *Interface pi = ps _, _ = pi, ps } cioè se Struct è un’interfaccia, […]

Perché posso digitare funzioni alias e usarle senza eseguire il cast?

In Go, se si definisce un nuovo tipo, ad esempio: type MyInt int Non è quindi ansible passare un MyInt a una funzione che si aspetta un int, o viceversa: func test(i MyInt) { //do something with i } func main() { anInt := 0 test(anInt) //doesn’t work, int is not of type MyInt } […]

Questo casting è in golang?

paxPayment, ok = dataObject.(*entities.PassengerPayment) A cosa servono le parentesi? Non sono sicuro di cosa sta succedendo in questa operazione di assegnazione. Hai bisogno di ulteriori dettagli per rispondere a questa domanda?

Perché viene visualizzato un errore “imansible assegnare” quando si imposta il valore su una struttura come valore in una mappa?

New to Go. Incontrato questo errore e non ho avuto fortuna nel trovare la causa o il fondamento logico per questo: Se creo una struct, posso ovviamente assegnare e riassegnare i valori senza problemi: type Person struct { name string age int } func main() { x := Person{“Andy Capp”, 98} x.age = 99 fmt.Printf(“age: […]

Dichiara un array costante

Ho provato: 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,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } const letter_goodness = []float32 { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0633,.0906,.0276, .0098,.0236,.0015,.0197,.0007 } Innanzitutto, la dichiarazione e l’inizializzazione funzionano bene, ma il secondo, il terzo e il quarto non funzionano. Come posso dichiarare […]

Come verificare se una mappa contiene una chiave in uscita?

So che posso scorrere su una mappa m by, for k, v := range m { … } e cercare una chiave ma c’è un modo più efficiente di testare l’esistenza di una chiave in una mappa? Grazie. Non sono riuscito a trovare una risposta nelle specifiche del linguaggio .

Perché non è ansible andare a mappe iterate nell’ordine di inserimento?

Ho una barra di navigazione come una mappa: var navbar = map[string]navbarTab{ } Dove navbarTab ha varie proprietà, elementi figlio e così via. Quando provo a eseguire il rendering della barra di navigazione (con for tabKey := range navbar ) viene visualizzato in ordine casuale. Sono a conoscenza che l’ range ordina casualmente quando viene […]