• 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

Hosting forpsi easy 1 pln
0 głosów
1,037 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,760 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,760 p.)
public enum Days
{
    Monday,
    Tuesday,
    ....
}
//Deklaracja
somefunction(Days days)
{
  //doSth
}

//wywolanie

somefunction(Days.Monday);

 

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

Podobne pytania

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

92,117 zapytań

140,779 odpowiedzi

317,774 komentarzy

61,436 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1014p. - Łukasz Eckert
  2. 1002p. - Dawid128
  3. 951p. - Mikbac
  4. 943p. - Michal Drewniak
  5. 933p. - rucin93
  6. 926p. - sefirek
  7. 887p. - CC PL
  8. 882p. - Adrian Wieprzkowicz
  9. 869p. - TheLukaszNs
  10. 865p. - Eryk Andrzejewski
  11. 850p. - nidomika
  12. 817p. - Arkadiusz Waluk
  13. 813p. - Henry Saele
  14. 802p. - 13NOONE37
  15. 794p. - the Bielsky
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.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...