2015-03-05 16 views
5

Ho una semplice funzione che verifica se una stringa è un numero interoPassando parametri della mappa in Golang

func testInt(str string, m map[bool]) int { 
    _,e := strconv.ParseInt(str, 0, 64); 
    return m[nil == e] * 7; 
} 

cui la mappa viene passata contiene m[true] = 1, m[false] = 0. Tuttavia, quando si tenta di eseguire questo Go lamenta

1: syntax error: unexpected) 

O io non posso passare le mappe intorno come parametri in questo modo o in un altro io sto facendo questo del tutto sbagliato. In ogni caso, vorrei tanto apprezzare qualche aiuto

+2

Non sono sicuro che mi piaccia la pratica degli switch "operatore ternario" implementati tramite una mappa vero/falso. Questa è una forma di offuscamento. Se intendi "se", dì "se". –

+0

@Rick - se non ti piace il modo in cui scrivo il mio codice che è il tuo privilegio. Decidere di mollare una domanda che rientra nelle competenze di questo forum, mostra uno sforzo di ricerca ed è stata formulata con un'adeguata chiarezza per ricevere una risposta entro pochi minuti è piuttosto OTTATA. Comunque, suppongo che farlo abbia reso la tua giornata. – DroidOS

+0

Non l'ho votato. –

risposta

8

A map mappe chiavi ai valori, utilizzando la sintassi

map[KeyType]ValueType 

(vedi https://blog.golang.org/go-maps-in-action)

Nella funzione, non è stato specificato un ValueType, causando questo errore di sintassi. Sembra che tu voglia un map[bool]int.

+0

Sì, funziona. Data la filosofia di Go che è logico - a ben vedere :-) – DroidOS

Problemi correlati