Próbuję użyć enum w golang jak poniżej. Staram się znaleźć łatwy sposób na powtórzenie listy stałych wartości. Jakie są powszechne praktyki w golang do iteracji w stosunku do wartości stałych używanych jako enum. Dzięki!czy istnieje sposób na iterację stałej używanej jako enum
type DayOfWeek int
const(
Monday DayOfWeek = iota
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
W Javie możemy iterować jak poniżej.
public enum DayOfWeek {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
for (DayOfWeek day: DayOfWeek.values()) {
// code logic
}
Po pierwsze, wszystkie identyfikatory Go są zwykle w [MixedCaps] (https://github.com/golang/go/wiki/CodeReviewComments#mixed-caps), w tym stałe. Możesz wykonać prostą pętlę, taką jak 'for d: = Monday; d <= niedziela; d ++ {} 'gdzie wyraźnie znasz wartości początkowe/końcowe lub możesz dodać dla nich aliasy (np. coś takiego jak' firstDay = Monday; lastDay = Sunday'). Chociaż można pójść dalej, aby zrobić coś, co używałoby 'zasięgu' IMO, to absolutnie nie jest tego warte. –
Nawiasem mówiąc, istnieje już ['time.Weekday'] (https://golang.org/pkg/time/#Weekday), który przechodzi od' time.Sunday' do 'time.Saturday'. (Oczywiście, że przypadkiem ustawiłeś dni tygodnia jako arbitralny przykład, to nieważne). –
Dave, dziękuję za odpowiedź. Poprawiłem przypadek dla stałych. Patrzę na ogólne wyrazy nie tylko w dzień powszedni. firstDay i lastDay wydają mi się interesujące. Czy powinno to być na listach stałych, czy też są one zmiennymi zewnętrznymi? Dzięki! –