Z tematem po raz pierwszy zetknąłem się prawie dwa lata temu - http://pawelwlodarski.blogspot.com/2013/08/covariance-i-contravariance-dla.html i był to jeden z tych momentów kiedy zrozumiałem, że jeśli znam Javę i Springa to nie oznacza, że mogę twierdzić, że umiem programować.
W oryginalnym artykule sam próbowałem zrozumieć ten temat +A,-A,A, a że najlepsza nauka to próba wytłumaczenia komuś tego czego nie rozumiemy toteż to było pierwsze podejści. Do tego by pobudzić rozrywkowe obszary mózgu próbowałem użyć odpowiednia ilość razy słowo Dupa w kontekście domeny żłopu alkoholowego.
A że chlanie wódy to nie do końca zdrowe zajęcie plus jak jest za dużo tekstu to nikomu nie chce się czytać to spróbujmy innego podejścia.
The Box
Nie chodzi o film z Cameron Diaz z 2009, który opowiadał o złudnym poczuciu braku konsekwencji z samolubnych wyborów - http://www.imdb.com/title/tt0362478/
Generalnie te wszystkie ...variance tłumaczy się w kontekście typu, który jakoś opakowuje lub jest parametryzowany przez inny typ- M[T]. Na przykład Option[A],Try[A] czy List[A]
Przykład z listą jest niby wytłumaczyć najprościej bo to jest też w javię w cudownej postaci List<? extends User> czy List<? super User>. Co wygląda trochę dziwnie ale jest.
Natomiast w kwestii Coś opakowuje coś ludzie zapominają o klasyce :
Dla tych, którzy nie znają angielskiego "Dick" to imię wieloryba z przygód "Janka Muzykanta" http://www.filmweb.pl/film/Moby+Dick-1956-32061
Brak komentarzy:
Prześlij komentarz