• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak prawidłowo używać enum

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,350 wizyt
pytanie zadane 29 sierpnia 2016 w Inne języki przez niezalogowany
Witam, nie umiem zrozumieć zastosowania enum oraz jak tego używać. Mógłby mi to ktoś wyjaśnić??

2 odpowiedzi

+1 głos
odpowiedź 29 sierpnia 2016 przez Szykem2 Nałogowiec (29,510 p.)
wybrane 29 sierpnia 2016
 
Najlepsza

Enum służy do definiowania typów wyliczeniowych, czyli używasz jakichś konkretnych nazw, które de facto są liczbami.

Do czego mogą się przydać. Prosty przykład: piszesz grę i nie chcesz używać dyrektyw define. Więc żeby sprawdzić, czy np. jakiś warunek dla stanu gry (start, pauza, koniec gry) określasz tylko nazwą z tego enuma, a nie musisz pamiętać określonych kodów. Więc żeby sprawdzić czy pauzujesz grę sprawdzasz czy zmienna

gameState == pause
//zamiast
gameState == 231 //bo taki kod wybrałeś na pauzę
komentarz 29 sierpnia 2016 przez niezalogowany
Mógłbyś trochę rozwinąć tam kod??
komentarz 29 sierpnia 2016 przez Szykem2 Nałogowiec (29,510 p.)

To jest tak na prędce napisane i nie wiem czy to co tu będzie ma jakiś większy sens i kod jest niskiej jakości nie bardzo mam czas i ochotę pisać kod jakości produkcyjnej tylko dla przykładu(są tu zawarte złe nawyki ale wygodne z punktu widzenia przykładu):

enum state {
    start,
    pause,
    quit
};

gameState = start;

int main() {
    initGame();                             //funkcja inicjująca zmienne wykorzystywane w grze

    for(;;) {
        gameLoop();                      //funkcja, która obsługuje całą grę, można powiedzieć, że w niej się odbywa cała gra i może się zmieniać zmienna gameState
        if (gameState == quit) {
            break;                             //jeśli nastąpiła zmiana gameState to kończymy naszą grę. Jeśli nie to gramy dalej.
        }
    }
    return 0;
}

 

komentarz 29 sierpnia 2016 przez Szykem2 Nałogowiec (29,510 p.)
Chociaż w wypadku gier lepiej używać klas wyliczeniowych niż samych typów wyliczeniowych. Poszukaj w googlach jak to wygląda bo działa tak samo tylko używasz jeszcze operatora zakresu ('::')
komentarz 30 sierpnia 2016 przez draghan VIP (106,230 p.)

Chociaż w wypadku gier lepiej używać klas wyliczeniowych niż samych typów wyliczeniowych.

W ogóle lepiej korzystać z klas wyliczeniowych, bo jasno pokazują Ci, do jakiego wyliczenia przynależy dany identyfikator, co zwiększa czytelność i pomaga w pracy nad kodem. :)

0 głosów
odpowiedź 29 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
Enum służy do oznaczania szczególnych stanów, w jakich znajduje się obiekt. Np. obiekt, który zwraca jakieś dane. Może zwracać je w różnych formach- XML, JSON, CSV. Tworzysz enuma, który zawiera 3 opcje- XML, JSON, CSV. W zależności, jak tego enuma ustawisz, w takiej formie dany obiekt będzie zwracał dane. (Wykorzystujesz to w jakimś switchu czy coś) Kiepski przykład, no ale jakieś zastosowanie jest.

Często podczas konfiguracji jakiegoś frameworka zdarza się, że trzeba enumy poustawiać na jakieś tam X, by wymusić zachowanie Y.
komentarz 29 sierpnia 2016 przez niezalogowany
A jak wygląda przesyłanie go do funkcji
komentarz 29 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
public enum Days
{
    Monday,
    Tuesday,
    ....
}
//Deklaracja
somefunction(Days days)
{
  //doSth
}

//wywolanie

somefunction(Days.Monday);

 

komentarz 29 sierpnia 2016 przez Surykat Stary wyjadacz (14,780 p.)
Przykład napisany w c#,

Podobne pytania

0 głosów
2 odpowiedzi 878 wizyt
pytanie zadane 28 grudnia 2019 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
2 odpowiedzi 2,271 wizyt
0 głosów
1 odpowiedź 495 wizyt
pytanie zadane 20 lipca 2023 w C i C++ przez Krzysztofs1234 Użytkownik (890 p.)

93,164 zapytań

142,176 odpowiedzi

321,938 komentarzy

62,493 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rafalszastok
  8. 641p. - rucin93
  9. 629p. - Piotr Aleksandrowicz
  10. 629p. - Adrian Wieprzkowicz
  11. 621p. - Dawid128
  12. 611p. - ksalekk
  13. 606p. - Mariusz Fornal
  14. 602p. - Michał Telesz
  15. 597p. - Hubert Chęciński
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...