Ich versuche, Enum in Golang wie unten zu verwenden. Ich habe Mühe, einen einfachen Weg zu finden, um über die Liste der konstanten Werte zu iterieren. Was in Golang üblich ist, um über konstante Werte, die als Enum verwendet werden, zu iterieren. Danke!
%Vor%In Java können wir wie folgt iterieren.
%Vor%Es gibt keine direkte Möglichkeit, die Werte / Instanzen des benannten Typs zur Laufzeit aufzulisten, unabhängig davon, ob es sich um Variablen oder Konstanten handelt, es sei denn, Sie definieren speziell ein Segment, das sie auflistet. Dies bleibt dem Definierer oder dem Benutzer des Aufzählungstyps überlassen.
%Vor%Um in der Lage zu sein, diese Liste zur Laufzeit dynamisch zu erzeugen, z.B. Durch Reflektion müsste der Linker alle Symbole beibehalten, die in allen Paketen definiert sind, wie Java. Die Gruppe der Golang-Nüsse diskutierte dies in Bezug auf Namen und Funktionen, die aus einem Paket exportiert wurden, eine Obermenge von Paketkonstanten. Ссылка
Es wäre möglich, dass die Sprache syntaktischen Zucker enthält, um diese Liste zur Kompilierzeit zu erzeugen, wenn und nur wenn sie vom Programm referenziert würde. Was sollte die Iterationsreihenfolge sein? Wenn Ihre Woche am Montag beginnt, ist die Liste, die ich definiert habe, nicht sehr hilfreich; Sie müssen ein eigenes Segment definieren, um die Tage von Montag bis Sonntag zu erreichen.