Funkcja, która nie zwraca wyniku

0

W sumie to nie wiem gdzie to umieścić więc jakby co to proszę o przeniesienie do odpowiedniego działu...
Istnieją funkcje, które nie zwracają żadnych wyników (nawet tu są opisane chyba dla języka C). Ja w sumie mam dwa pytania:

  1. Po co są funkcje, które nie zwracają wyniku? Jaki jest sens ich używania?
  2. Czy takie funkcje są dostępne w każdym języku programowania?
    Nie wiem dlaczego zawsze jak pytam informatyków to słyszę odpowiedź - "nie każ mi tego tłumaczyć ale są potrzebne".
    Czy może mnie ktoś oświecić? Szukałem w necie ale tam nie widzę konkretnej odpowiedzi...
0

Ad.1.
Są potrzebne ze względu na

  • tzw efekty uboczne
  • zmiany w obiektach które mogą być do tych procedur/funkcji przekazane przez referencje.

Pierwszy przypadek to na przykład funkcje które coś wypisują, albo malują albo robią coś podobnego. Masz na przykład funkcję zagrajMuzyczke(). Widzisz sens zwracania przez tą funkcję wartości? Ja nie.
Drugi przypadek to funkcje które dostają jako swój argument wskaźnik/referencje do jakiegoś obiektu. Przykładem takich funkcji są metody klas, które jako pierwszy argument dostają zawsze wskaźnik lub referencje do obiektu na którym zostały wywołane. Taka metoda nie musi nic zwracać a mimo to może dokonać jakichś zmian w obiekcie. Przykładem takiej popularnej metody jest seter - metoda ustawiająca wartość jakiegoś pola obiektu klasy na podaną wartość.

Ad.2.
Jeśli w jakichś językach mogłoby nie być funkcji które nic nie zwracają to byłyby to zapewne języki funkcyjne, ale chyba nawet one to umozliwiają.

0

Ta odpowiedź bardzo mnie satysfakcjonuje, a nawet wyjaśniłeś mi to bardzo przystępnie. Dzięki za odpowiedź:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1