Sto cercando di usare enum in golang come di seguito. Sto lottando per trovare un modo semplice per scorrere l'elenco dei valori costanti. Quali sono le pratiche comuni in Golang per scorrere su valori costanti usati come enum. Grazie!c'è un modo per iterare su costante usato come enum
type DayOfWeek int
const(
Monday DayOfWeek = iota
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
In Java, è possibile eseguire l'iterazione come di seguito.
public enum DayOfWeek {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
for (DayOfWeek day: DayOfWeek.values()) {
// code logic
}
Prima di tutto, tutti gli identificatori di Go sono normalmente in [MixedCaps] (https://github.com/golang/go/wiki/CodeReviewComments#mixed-caps), incluse le costanti. Potresti fare un semplice ciclo come 'for d: = Monday; d <= domenica; d ++ {} 'dove conosci esplicitamente i valori di inizio/fine o potresti aggiungere alias per quelli (ad es. qualcosa come firstDay = Monday; lastDay = Sunday'). Sebbene sia possibile andare oltre per creare qualcosa che utilizzi l'IMO 'range', non ne vale assolutamente la pena. –
A proposito, c'è già ['time.Weekday'] (https://golang.org/pkg/time/#Weekday) che va da 'time.Sunday' a' time.Saturday'. (Ovviamente ti è capitato di mettere giorni della settimana come un esempio arbitrario, questo non è importante). –
Dave, grazie per la risposta. Ho corretto il caso per le costanti. Sto cercando enum in generale, non solo nei giorni feriali. firstDay e lastDay mi sembrano interessanti. Dovrebbe andare nelle liste const o sono variabili esterne? Grazie! –