-
Data: 2013-02-07 02:09:28
Temat: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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)
Następne wpisy z tego wątku
- 07.02.13 06:05 Roman W
- 07.02.13 08:35 firr kenobi
- 07.02.13 08:50 AK
- 07.02.13 08:53 AK
- 07.02.13 09:12 AK
- 07.02.13 09:59 Maciej Sobczak
- 07.02.13 09:53 Sebastian Kaliszewski
- 07.02.13 10:10 Stachu 'Dozzie' K.
- 07.02.13 10:12 Maciej Sobczak
- 07.02.13 10:17 Stachu 'Dozzie' K.
- 07.02.13 10:20 Stachu 'Dozzie' K.
- 07.02.13 10:34 Maciej Sobczak
- 07.02.13 13:24 M.M.
- 07.02.13 23:07 Andrzej Jarzabek
- 07.02.13 23:51 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-04 GNSS Motorola G85 vs Redmi Note 9 pro
- 2024-11-04 Katowice => SAP BTP Consultant (mid/senior) <=
- 2024-11-04 Katowice => Spedytor międzynarodowy <=
- 2024-11-04 Warszawa => Specjalista/tka ds. Zamówień publicznych <=
- 2024-11-04 Poznań => QA Engineer <=
- 2024-11-04 Poznań => QA Inżynier <=
- 2024-11-04 Polskie sądy są bardzo wyrozumiałe...
- 2024-11-04 Wrocław => SAP Project System/EPPM Consultant <=
- 2024-11-04 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-04 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-04 Kraków => Software .Net Developer <=
- 2024-11-04 Kraków => Programista Full Stack .Net <=
- 2024-11-04 Warszawa => Key Account Manager <=
- 2024-11-04 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-04 Warszawa => E-COMMERCE specialist <=