Non riesco a trovare alcuna documentazione relativa al tipo di valore restituito quando si tenta di inserire una chiave in una mappa in cui la chiave non esiste. Dal bug tracker Go sembra essere uno speciale 'nessun valore'Operatori di confronto modello di ricerca sulla chiave di mappa mancante
Sto cercando di confrontare due valori utilizzando la funzione di eq
ma dà un errore se la chiave non esiste
Esempio:
var themap := map[string]string{}
var MyStruct := struct{MyMap map[string]string}{themap}
{{if eq .MyMap.KeyThatDoesntExist "mystring"}}
{{.}}
{{end}
Risultati in error calling eq: invalid type for comparison
Da questo considera che il valore nullo non è la stringa vuota ""
come è in sé Go.
C'è un modo semplice per confrontare un valore di mappa potenzialmente inesistente e un altro valore?
Una soluzione molto elegante. Grazie. – Sam
Funziona anche su versioni precedenti di Go, diversamente dalla soluzione che utilizza {{if}}/{{with}} –