Una struttura a cui sto lavorando chiamata fieldDefinition
contiene metadati relativi a un campo utilizzato da un oggetto nella mia app Web. Uno dei campi su fieldDefinition
(diventa un po 'confuso) ha un aspetto simile al seguente:
type fieldDefinition struct {
id string
apiName string
label string
fieldType uint //Defined by a list of constants.
defaultValue interface{}
}
Ho anche una funzione * sulla struct per recuperare il valore predefinito (l'impostazione richiede un po 'di logica) che attualmente restituisce letteralmente solo il tipo interface{}
. A seconda del valore di fieldType
vorrei che ci fosse qualche indicazione che il valore restituito è utilizzabile come il tipo fieldType
dice che dovrebbe essere.
Ad esempio, se fieldType == FT_GEOLOCATION
, allora voglio assicurarmi che il valore dell'interfaccia restituito sia della mia struttura Geolocation
. Stavo osservando le asserzioni di tipo, ma non riesco a vedere alcun esempio di come sia usato in una situazione simile da cui imparare, e non penso di essere sicuro al 100% di come effettivamente funzioni.
Come potrei beneficiare delle asserzioni di tipo qui, e c'è un modo migliore / più accettato di farlo, o devo solo accettare che i tipi di interface{}
sono difficili da garantire con validità?