eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjezyki z definiowaniem operatorowRe: jezyki z definiowaniem operatorow
  • Data: 2012-05-17 09:35:02
    Temat: Re: jezyki z definiowaniem operatorow
    Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On May 16, 6:09 pm, " M.M." <m...@g...pl> wrote:

    > W Javie nie ma (chyba że jakoś niedawno dodali i nie zdążyłem
    > uzupełnić informacji) i nie powoduje to problemów.

    Co to znaczy "nie powoduje problemów"? To jest kwestia czytelności
    kodu a nie tego, czy program zadziała.

    W jezyku z prawdziwymi szablonami brak przeciążania operatorów byłby
    realnym problemem. Czy możeby powiedzieć, że brak przeciążania
    operatorów w Javie nie powoduje problemów ze względu na istniejący już
    problem braku prawdziwych szablonów? :-p

    Tak btw, to Java ma przeciążone operatory - np. operator + jest
    przeciążony zarówno dla typu int jak i double (tak, to jest
    przeciążony operator). Co ciekawe, jest on również przeciążony dla
    typu String, który jest klasą, co by sugerowało, że można przeciążać
    operatory dla klas. Ale nie cieszmy się, bo fakt, że operator + jest
    przeciążony dla typu String wcale nie oznacza, że możemy mieć taki
    operator również dla typu MyString. Ktoś mógłby powiedzieć, że klasa
    String jest standardowa, więc ma specjalne prawa, ale jakoś klasy
    Integer i spółka takich praw nie mają, jadąc na barana na przeciążonym
    (tak!) operatorze typów podstawowych. Klasa BigDecimal też jest
    standardowa, ale nie dość, że nie ma żadnych specjalnych praw, to na
    żadnym baranie też nie pojedzie.
    Co pies, to inaczej szczeka.

    Poza tym, faktycznie, braki w Javie "nie powodują problemów".

    > Wątpię
    > aby w językach ogólnego(!) przeznaczenia był jakikolwiek
    > sens intensywnego zastępowania wywołań funkcji operatorami,
    > nie wspominając nawet o własnym definiowaniu.

    Sens jest taki, żeby nie było takiego burdelu jak powyżej.

    a = b + c;

    i tyle. Tak to ma wyglądać (lub odpowiednio do ogólnych konwencji) w
    języku ogólnego (właśnie!) przeznaczenia.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: