eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie typowanie jest najlepsze i dlaczego statyczne?Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.chmurka.net!.POSTED!not-for-mail
    From: Andrzej Jarzabek <a...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
    Date: Thu, 07 Feb 2013 01:09:28 +0000
    Organization: news.chmurka.net
    Lines: 64
    Message-ID: <keuusd$ovj$1@somewhere.invalid>
    References: <f...@g...com>
    <kehdr8$piv$1@somewhere.invalid>
    <8...@g...com>
    <kem1vl$8n2$1@somewhere.invalid>
    <7...@g...com>
    <8...@g...com>
    <6...@g...com>
    <5...@g...com>
    <s...@j...net>
    <b...@g...com>
    <s...@j...net>
    <1...@g...com>
    <3...@b...softax.pl>
    <b...@g...com>
    <k...@b...softax.pl>
    <4...@g...com>
    <keun5d$lsh$1@somewhere.invalid>
    <f...@g...com>
    <keuri4$nje$1@somewhere.invalid>
    <1...@g...com>
    NNTP-Posting-Host: 5ac53cfe.bb.sky.com
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: somewhere.invalid 1360199373 25587 90.197.60.254 (7 Feb 2013 01:09:33 GMT)
    X-Complaints-To: abuse-news.(at).chmurka.net
    NNTP-Posting-Date: Thu, 7 Feb 2013 01:09:33 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130107
    Thunderbird/17.0.2
    In-Reply-To: <1...@g...com>
    X-Authenticated-User: ajarzabek
    Xref: news-archive.icm.edu.pl pl.comp.programming:201931
    [ ukryj nagłówki ]

    On 07/02/2013 00:36, M.M. wrote:
    > W dniu czwartek, 7 lutego 2013 01:12:47 UTC+1 użytkownik Andrzej Jarzabek napisał:
    >> No ale nie możesz w ten sposób wstawić dowolnej struktury czy mapy.
    > Jak na razie wstawiam dowolne potrzebne.
    >
    >> Możesz przypisać boost::function<int(int)>?
    > Czy to na pewno jest potrzebne, albo chociaż zapewnia w jakimś
    > przypadku wygodę?

    A więc nie moższ.

    >> Nie ma tej wygody, bo na zmiennej typu Variant możesz wywoływać tylko
    >> mettody typu Variant - czyli żadnych użytecznych dla danych, na których
    >> faktycznie chcesz wykonywać jakieś operacje.
    > Nie wiem o jaką użyteczność chodzi, ale może to by załatwiała metoda
    > wirtualna?

    Variant policz_cene(Variant transakcja)
    {
    return transakcja.kwota * kurs_walut(transkacja.waluta,
    moja_waluta);
    }

    W tym momencie piszę algorytm liczący kwotę, jakimi typami są
    transakcje, kwoty i waluty jeszcze nie zdecydowałem, zresztą mogę to
    wiele razy refaktoryzować. Może transakcja będzie konstruowana z
    elementu XML, który ma podelementy 'kwota' i 'waluta'.

    >> Żeby zrobić coś więcej
    >> musisz sobie przerzutować, a żeby przerzutować musisz dokładnie
    >> wiedzieć, na co chcesz rzutować.
    > Nie trzeba wiedzieć aż tak dokładnie, wystarczy rzutować na klasę z
    > czystą metodą wirtualną, zwykle na tą najwyższą w hierarchii dziedziczenia.

    Wystarczy, żeby powodować niewygodę. Bo tak czy inaczej musisz w tym
    momencie zdefiniować odpowiednie typy.

    >> Nie możesz mieć tego samego kodu, który zadziała zarówno na hashmapie z
    >> elementem o nazwie 'pole' jak i na obiekcie typu (klasy) mającego pole o
    >> nazwie 'pole'.
    > O jakie różnice chodzi?

    struct A
    {
    def pole
    def polozenie
    [...]
    }

    struct B
    {
    def pole = 0
    }

    var c = parse_xml('<root><pole>31</pole></root>')

    fun foo(p)
    {
    return (p.pole)/2
    }

    foo(new A)
    foo(new B)
    foo(c)

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: