- Wydawnictwo:
- Helion
- Ocena:
- 4.0/6 Opinie: 5
- Stron:
- 352
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
Opis ebooka: Kotlin w akcji
Kotlin został zaprojektowany jako obiektowy język w pełni interoperacyjny z kodem napisanym w Javie. Został zaprezentowany w 2011 roku. Od tego czasu jest rozwijany, a jego popularność stale rośnie. Kotlin jest językiem o statycznie typowanych zmiennych. Charakteryzuje się czytelną składnią i ścisłą integracją z istniejącymi projektami, bibliotekami i platformami utworzonymi w Javie. Kompiluje się do postaci binarnego kodu JVM, więc można go uruchamiać wszędzie tam, gdzie jest Java, również w Androidzie. Kotlin zainteresuje programistów aplikacji mobilnych również dlatego, że kod napisany w tym języku obciąża system w minimalnym stopniu. Przy tym wszystkim środowisko Kotlina jest w całości otwartym oprogramowaniem do bezpłatnego korzystania w dowolnych celach!
Ta książka jest przeznaczona dla osób, które mają pewne doświadczenia z Javą i chcą szybko poznać Kotlina w stopniu pozwalającym na tworzenie aplikacji serwerowych, dla systemu Android i maszyn JVM. Znalazł się tu opis podstawowych cech języka i jego najważniejszych struktur, a następnie przedstawiono bardziej zaawansowane zagadnienia, takie jak tworzenie wysokopoziomowych abstrakcji i języków domenowych. Duży nacisk położono na integrację kodu Kotlin z istniejącymi projektami Java oraz na sposoby wprowadzania Kotlina do aktualnie użytkowanego środowiska. Zaprezentowano kilka przydatnych bibliotek i narzędzi, znakomicie ułatwiających pracę programiście. Nie zabrakło również licznych przykładów kodu, ilustrujących omawiane zagadnienia.
W tej książce między innymi:
- solidne wprowadzenie do Kotlina
- klasy, klasy danych i funkcje lambda
- typy danych, w tym kolekcje i puste zmienne
- własne interfejsy i abstrakcje w Kotlinie
- parametry reifikowanego typu, adnotacje i refleksje
Kotlin - idealny dla Androida!
Programiści chcą szybko tworzyć kod. Im mniej przy tym zamieszania, tym lepiej. Kodowanie w Kotlinie oznacza mniejsze zamieszanie. Język ten charakteryzuje się czytelną składnią, spójnym i intuicyjnym systemem typów, doskonałym oprzyrządowaniem i ścisłą integracją z istniejącymi projektami, bibliotekami i platformami utworzonymi w języku Java. Kompiluje się do postaci binarnego kodu maszyny JVM, dzięki czemu można go uruchamiać wszędzie tam, gdzie jest Java, również w systemie Android. Dzięki wydajnemu kompilatorowi i małej standardowej bibliotece kod napisany w Kotlinie obciąża system w minimalnym stopniu.
Książka Kotlin w akcji uczy, jak tworzy się w tym języku aplikacje produkcyjne. Została napisana przez doświadczonych programistów Java, zawiera mnóstwo przykładów i wykracza daleko poza typowy zakres książek o programowaniu opisując ciekawe tematy, takie jak tworzenie języka DSL o naturalnej składni. Autorzy książki są twórcami języka Kotlin, więc wszystkie, nawet najdrobniejsze szczegóły są rzetelnie i precyzyjnie opisane.
Co jest w środku:
- programowanie funkcjonalne dla maszyny JVM
- tworzenie czystego, spójnego kodu
- łączenie języków Kotlin i Java
- tworzenie języków domenowych
Książka jest przeznaczona dla doświadczonych programistów Java.
Dmitrij Jemierow i Swietłana Isakowa są programistami w JetBrains, bezpośrednio zaangażowanymi w rozwijanie języka Kotlin.
"Ta książka zawiera wysokopoziomowe koncepcje cech języka, jak również niezbędne szczegóły."
Z przedmowy Andrieja Briesława, głównego projektanta języka Kotlin
"Książka ta, podobnie jak inne doskonałe publikacje wydawnictwa Manning, zapewnia wszystko, co jest potrzebne, aby szybko i skutecznie programować."
Kevin Orr, Sumus Solutions
"Kotlin to ciekawy i prosty język, jeżeli korzysta się z takiego podręcznika, jak ten!"
Filip Pravica, Info.nl
"Wyczerpująca, dobrze i przystępnie napisana książka."
Jason Lee, NetSuite
Wybrane bestsellery
-
Atomowy Kotlin to książka dla wszystkich, którzy chcą nauczyć się Kotlina stosunkowo młodego, ale bardzo popularnego i pożądanego na rynku pracy języka programowania. Nieważne, czy jesteś początkującym, czy doświadczonym programistą, dzięki tej publikacji Kotlin nie będzie miał dla Ciebie żadny...(93.12 zł najniższa cena z 30 dni)
111.20 zł
139.00 zł(-20%) -
To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istot...(77.40 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy używać takich opcji jak niemutowalność i funkcje czyste i dlaczego warto to robić....
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
(52.20 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Po tym, jak Bene Gesserit odwołały Jessikę z Kaladanu i wysłały jako konkubinę do innego szlachcica, książę Leto postanowił zaangażować się w rozbicie radykalnego ruchu na rzecz Wspólnoty Szlacheckiej. Kaladanem zaś w jego imieniu zarządza ich syn. Ledwie czternastoletni Paul wkracza w świat, któ...
Diuna. Dziedzic Kaladanu. Trylogia Kaladanu. Tom 1 Diuna. Dziedzic Kaladanu. Trylogia Kaladanu. Tom 1
(37.95 zł najniższa cena z 30 dni)53.82 zł
69.00 zł(-22%) -
Java. Podręcznik na start to pozycja idealna dla każdego, kto chce podjąć takie kroki. W przystępny sposób zaznajamia nie tylko z językiem, ale też z podstawowymi koncepcjami stosowanymi podczas programowania - w obrazowy sposób przyrównuje je do sytuacji znanych spoza świata wirtualnego. Autor n...(41.40 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
W 1929 roku siedemnastoletnia Lenora Hope została oskarżona o brutalne zamordowanie swoich rodziców i siostry. Policja jednak nigdy nie udowodniła jej winy.(11.90 zł najniższa cena z 30 dni)
32.72 zł
40.90 zł(-20%) -
Historia dzieje się na naszych oczach. To, co jeszcze wczoraj wydawało się nie do pomyślenia, dziś stało się faktem. Rosja dokonała inwazji na Ukrainę, za wschodnią granicą Polski toczy się zacięty konflikt zbrojny.(24.90 zł najniższa cena z 30 dni)
35.02 zł
44.90 zł(-22%) -
Żaden kraj nie był tak głęboko podzielony w sprawie swojej historii jak Rosja. Żaden nie zmieniał tak często opowieści o własnej przeszłości. To, jak Rosjanie opowiadają o swoich dziejach i w każdym pokoleniu tworzą ich nową wersję, jest ważną częścią ich historii, kultury i poglądu na świat. Aby...(59.99 zł najniższa cena z 30 dni)
59.99 zł
79.99 zł(-25%) -
2014. Jacek Nitecki stoi samotny przed halą odlotów Okęcia. Zaczyna padać deszcz. Dzwoni telefon. Jacek odbiera, myśląc, że jego droga do piekła właśnie się skończyła. Ale ona dopiero się zaczyna.(45.82 zł najniższa cena z 30 dni)
45.82 zł
53.90 zł(-15%) -
Wiele lat temu w trakcie licealnej imprezy w Żeromicach doszło do tragedii dwoje nastolatków spłonęło w starym, porzuconym pustostanie. Sprawa została zakwalifikowana jako wypadek i odcisnęła się na lokalnej społeczności tak silnym piętnem, że nikt do niej nie wraca. Do czasu.
Światła w popiołach. Seria z Sewerynem Zaorskim. Tom 5 Światła w popiołach. Seria z Sewerynem Zaorskim. Tom 5
(33.90 zł najniższa cena z 30 dni)39.92 zł
49.90 zł(-20%)
O autorach ebooka
Dmitrij Żemierow pracuje w JetBrains (firma programistyczna z siedzibą w Pradze) od 2003 r. Jest jednym ze współautorów języka Kotlin, dla którego stworzył pierwszą wersję generatora kodu na maszyny JVM. Prezentował ten język na konferencjach na całym świecie. Obecnie kieruje zespołem rozwijającym wtyczkę Kotlin dla środowiska IntelliJ IDEA.
Swietłana Isakowa dołączyła do zespołu Kotlina w 2011 r. Pracowała nad domniemaniem typów i rozpoznawaniem przeciążania w kompilatorze. Obecnie zajmuje się popularyzacją języka Kotlin, prezentując go na konferencjach i szkoleniach.
Ebooka "Kotlin w akcji" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Kotlin w akcji" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Kotlin w akcji" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- Tytuł oryginału:
- Kotlin in Action
- Tłumaczenie:
- Andrzej Watrak
- ISBN Książki drukowanej:
- 978-83-283-4720-5, 9788328347205
- Data wydania książki drukowanej:
- 2018-11-26
- ISBN Ebooka:
- 978-83-283-4721-2, 9788328347212
- Data wydania ebooka:
- 2018-11-26 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 168x237
- Numer z katalogu:
- 79201
- druk na żądanie!
- dnż
- Rozmiar pliku Pdf:
- 3.2MB
- Rozmiar pliku ePub:
- 4.5MB
- Rozmiar pliku Mobi:
- 10.5MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
Spis treści ebooka
- 1.1. Przedsmak Kotlina 25
- 1.2. Najważniejsze cechy języka Kotlin 26
- 1.2.1. Docelowe platformy: serwery, Android i wszystko, gdzie jest Java 26
- 1.2.2. Statyczne typowanie danych 27
- 1.2.3. Programowanie funkcyjne i obiektowe 28
- 1.2.4. Bezpłatne i otwarte oprogramowanie 29
- 1.3. Zastosowania języka Kotlin 30
- 1.3.1. Kotlin na serwerach 30
- 1.3.2. Kotlin w Androidzie 31
- 1.4. Filozofia języka Kotlin 32
- 1.4.1. Pragmatyzm 32
- 1.4.2. Zwięzłość 33
- 1.4.3. Bezpieczeństwo 34
- 1.4.4. Kompatybilność 35
- 1.5. Narzędzia języka Kotlin 35
- 1.5.1. Kompilator kodu 36
- 1.5.2. Wtyczki dla IntelliJ IDAE i Android Studio 36
- 1.5.3. Interaktywna powłoka 37
- 1.5.4. Wtyczka dla Eclipse 37
- 1.5.5. Internetowy "plac zabaw" 37
- 1.5.6. Konwerter Java-Kotlin 37
- 1.6. Podsumowanie 38
- 2.1. Podstawowe elementy: funkcje i zmienne 39
- 2.1.1. Witaj, świecie! 40
- 2.1.2. Funkcje 40
- 2.1.3. Zmienne 42
- 2.1.4. Proste formatowanie ciągów znaków: szablony 43
- 2.2. Klasy i właściwości 44
- 2.2.1. Właściwości 45
- 2.2.2. Własne metody dostępowe 47
- 2.2.3. Układ kodu źródłowego: katalogi i pakiety 48
- 2.3. Kodowanie i dokonywanie wyborów: klasa wyliczeniowa i wyrażenie when 49
- 2.3.1. Deklarowanie klasy wyliczeniowej 49
- 2.3.2. Wyrażenie when i klasy wyliczeniowe 50
- 2.3.3. Wyrażenie when i dowolne obiekty 51
- 2.3.4. Wyrażenie when bez argumentów 52
- 2.3.5. Inteligentne rzutowanie: połączenie sprawdzania i rzutowania typów 53
- 2.3.6. Refaktoryzacja kodu: zamiana if na when 55
- 2.3.7. Bloki kodu w odgałęzieniach wyrażeń if i when 56
- 2.4. Iteracje: pętle while i for 57
- 2.4.1. Pętla while 57
- 2.4.2. Iteracje liczb: zakresy i postępy 57
- 2.4.3. Iterowanie elementów map 59
- 2.4.4. Sprawdzanie przynależności do zakresu i kolekcji za pomocą słowa in 60
- 2.5. Wyjątki w Kotlinie 61
- 2.5.1. Instrukcje try, catch i finally 62
- 2.5.2. Słowo kluczowe try jako wyrażenie 63
- 2.6. Podsumowanie 64
- 3.1. Tworzenie kolekcji 66
- 3.2. Łatwiejsze wywoływanie funkcji 67
- 3.2.1. Nazwane argumenty 68
- 3.2.2. Domyślne wartości argumentów 68
- 3.2.3. Koniec ze statycznymi klasami pomocniczymi, czyli funkcje i właściwości najwyższego poziomu 70
- 3.3. Dodawanie elementów do zewnętrznych klas: funkcje i właściwości rozszerzające 72
- 3.3.1. Importowanie klas a funkcje rozszerzające 73
- 3.3.2. Wywoływanie funkcji rozszerzających w kodzie Java 74
- 3.3.3. Funkcje pomocnicze jako rozszerzenia 74
- 3.3.4. Nienadpisywalność funkcji rozszerzających 75
- 3.3.5. Właściwości rozszerzające 76
- 3.4. Przetwarzanie kolekcji: funkcjonalność varargs, wywołania infix i obsługa bibliotek 77
- 3.4.1. Rozbudowa interfejsu API kolekcji Java 78
- 3.4.2. Deklarowanie funkcji o dowolnej liczbie argumentów 78
- 3.4.3. Działania w parach: wywołania infix i deklaracje destrukturyzujące 79
- 3.5. Operacje na ciągach znaków i wyrażeniach regularnych 80
- 3.5.1. Dzielenie ciągów znaków 81
- 3.5.2. Wyrażenia regularne i potrójne cudzysłowy 81
- 3.5.3. Potrójne cudzysłowy i wielowierszowe ciągi znaków 83
- 3.6. Wygładzanie kodu: lokalne funkcje i rozszerzenia 84
- 3.7. Podsumowanie 86
- 4.1. Definiowanie hierarchii klas 90
- 4.1.1. Interfejsy w Kotlinie 90
- 4.1.2. Modyfikatory open, final (domyślny) i abstract 92
- 4.1.3. Modyfikatory widoczności, domyślny public 94
- 4.1.4. Klasy wewnętrzne i zagnieżdżone (domyślnie) 96
- 4.1.5. Klasy zapieczętowane: definiowanie ograniczonych hierarchii klas 98
- 4.2. Deklarowanie klas z nietrywialnymi konstruktorami i właściwościami 100
- 4.2.1. Inicjowanie klas: konstruktor główny i bloki inicjatora 100
- 4.2.2. Konstruktory dodatkowe i różne sposoby inicjowania klas nadrzędnych 102
- 4.2.3. Implementowanie właściwości zadeklarowanych w interfejsie 104
- 4.2.4. Dostęp do pól za pomocą getterów i setterów 105
- 4.2.5. Zmienianie widoczności metody dostępowej 106
- 4.3. Metody generowane przez kompilator, klasy danych i delegowanie klas 108
- 4.3.1. Metody uniwersalnych obiektów 108
- 4.3.2. Klasy danych i automatyczne generowanie uniwersalnych metod 111
- 4.3.3. Delegowanie klas i słowo kluczowe by 112
- 4.4. Słowo kluczowe object łączące deklarację klasy z utworzeniem jej instancji 114
- 4.4.1. Łatwe tworzenie singletonów poprzez deklarowanie obiektów 114
- 4.4.2. Obiekty towarzyszące: miejsce dla metod wytwórczych i elementów statycznych 116
- 4.4.3. Obiekty towarzyszące jako zwykłe obiekty 118
- 4.4.4. Wyrażenia obiektowe, czyli anonimowe klasy wewnętrzne 121
- 4.5. Podsumowanie 122
- 5.1. Wyrażenia lambda i odwołania do elementów obiektów 123
- 5.1.1. Wprowadzenie do wyrażeń lambda: bloki kodu jako argumenty funkcji 124
- 5.1.2. Lambdy i kolekcje 125
- 5.1.3. Składnia wyrażenia lambda 126
- 5.1.4. Odwołania do zmiennych w bieżącym kontekście 129
- 5.1.5. Odwołania do elementów klas 131
- 5.2. Interfejsy funkcyjne do przetwarzania kolekcji 133
- 5.2.1. Podstawy: filtry i mapy 133
- 5.2.2. Warunki i funkcje all(), any(), count() oraz find() w kolekcjach 135
- 5.2.3. Funkcja groupBy() i konwersja listy na mapę grup 136
- 5.2.4. Funkcja flatMap(), spłaszczanie struktury danych i przetwarzanie zagnieżdżonych kolekcji 137
- 5.3. Leniwe operacje na kolekcjach oraz sekwencje 138
- 5.3.1. Pośrednie i końcowe operacje na sekwencjach 139
- 5.3.2. Tworzenie sekwencji 142
- 5.4. Interfejsy funkcyjne Java 143
- 5.4.1. Umieszczanie wyrażeń lambda w argumentach metod Java 144
- 5.4.2. Konstruktory SAM i jawna konwersja wyrażeń lambda na interfejsy funkcyjne 146
- 5.5. Wyrażenia lambda, odbiorniki oraz funkcje with() i apply() 147
- 5.5.1. Funkcja with() 147
- 5.5.2. Funkcja apply() 149
- 5.6. Podsumowanie 151
- 6.1. Zerowalność typów danych 153
- 6.1.1. Zerowalne typy danych 154
- 6.1.2. Znaczenie typów danych 156
- 6.1.3. Bezpieczny operator wywołania "?." 157
- 6.1.4. Operator Elvisa "?:" 158
- 6.1.5. Bezpieczne rzutowanie typów: operator "as?" 160
- 6.1.6. Asercja niezerowa "!!" 161
- 6.1.7. Funkcja let() 163
- 6.1.8. Właściwości inicjowane z opóźnieniem 164
- 6.1.9. Rozszerzenia typów zerowalnych 166
- 6.1.10. Zerowalność argumentów typowanych 167
- 6.1.11. Zerowalność typów i Java 168
- 6.2. Typy proste oraz inne typy podstawowe 172
- 6.2.1. Typy proste Int, Boolean i inne 172
- 6.2.2. Zerowalne typy proste Int?, Boolean? i inne 173
- 6.2.3. Przekształcanie liczb 174
- 6.2.4. Typy główne "Any" i "Any?" 176
- 6.2.5. Typ Unit, odpowiednik "void" 177
- 6.2.6. Typ Nothing, czyli "funkcja nigdy nie kończy działania" 178
- 6.3. Kolekcje i tablice 178
- 6.3.1. Zerowalność typów danych i kolekcje 178
- 6.3.2. Kolekcje tylko do odczytu i kolekcje mutowalne 181
- 6.3.3. Kolekcje w Kotlinie i w Javie 182
- 6.3.4. Kolekcje jako typy platformowe 184
- 6.3.5. Tablice obiektów i typów prostych 186
- 6.4. Podsumowanie 189
- 7.1. Przeciążanie operatorów arytmetycznych 194
- 7.1.1. Przeciążanie dwuargumentowych operatorów arytmetycznych 194
- 7.1.2. Przeciążanie złożonych operatorów przypisania 196
- 7.1.3. Przeciążanie operatorów jednoargumentowych 198
- 7.2. Przeciążanie operatorów porównania 199
- 7.2.1. Operatory równości 199
- 7.2.2. Przeciążanie operatorów nierówności: metoda compareTo() 200
- 7.3. Konwencje stosowane w kolekcjach i zakresach 202
- 7.3.1. Dostęp do elementu za pomocą indeksu, metod get() i set() 202
- 7.3.2. Konwencja operatora in 203
- 7.3.3. Metoda rangeTo() 204
- 7.3.4. Konwencja "iterator" w pętli loop 205
- 7.4. Deklaracje destrukturyzujące i metody komponentowe 206
- 7.4.1. Deklaracje destrukturyzujące i pętle 207
- 7.5. Współdzielenie metod dostępowych i delegowanie właściwości 208
- 7.5.1. Podstawy delegowania właściwości 209
- 7.5.2. Korzystanie z delegowanych właściwości: inicjalizacja z opóźnieniem i funkcja lazy 209
- 7.5.3. Implementacja delegowanych właściwości 211
- 7.5.4. Zasady translacji delegowanych właściwości 215
- 7.5.5. Przechowywanie wartości właściwości w mapie 215
- 7.5.6. Delegowane właściwości w bibliotekach 216
- 7.6. Podsumowanie 218
- 8.1. Deklarowanie funkcji wysokopoziomowych 220
- 8.1.1. Typy funkcyjne 220
- 8.1.2. Wywoływanie funkcji podanych w argumentach 221
- 8.1.3. Stosowanie typów funkcyjnych w kodzie Java 222
- 8.1.4. Wartość domyślna i wartość null w argumentach typów funkcyjnych 223
- 8.1.5. Funkcje zawierające w wynikach inne funkcje 226
- 8.1.6. Usuwanie duplikatów kodu za pomocą wyrażeń lambda 227
- 8.2. Funkcje śródwierszowe i wydajność wyrażeń lambda 229
- 8.2.1. Wstawianie kodu funkcji 230
- 8.2.2. Ograniczenia funkcji śródwierszowych 232
- 8.2.3. Wstawianie operacji na kolekcjach 233
- 8.2.4. Kiedy należy stosować funkcje śródwierszowe 234
- 8.2.5. Zarządzanie zasobami za pomocą śródwierszowych wyrażeń lambda 234
- 8.3. Sterowanie realizacją kodu w funkcjach wysokopoziomowych 236
- 8.3.1. Instrukcja return w wyrażeniach lambda: wyjście z nadrzędnej funkcji 236
- 8.3.2. Wyjście z wyrażenia lambda: instrukcja return z etykietą 237
- 8.3.3. Funkcje anonimowe i domyślne wyjścia lokalne 239
- 8.4. Podsumowanie 240
- 9.1. Generyczne argumenty typowane 242
- 9.1.1. Generyczne funkcje i właściwości 243
- 9.1.2. Deklarowanie klas generycznych 244
- 9.1.3. Ograniczenia argumentów typowanych 245
- 9.1.4. Deklarowanie niezerowalnego argumentu typowanego 247
- 9.2. Typy generyczne w działającym kodzie, wymazane i urzeczowione argumenty typowane 248
- 9.2.1. Typy generyczne w działającym kodzie: sprawdzanie i rzutowanie typów 248
- 9.2.2. Deklarowanie funkcji z urzeczowionymi argumentami typowanymi 250
- 9.2.3. Zastępowanie odwołań do klas urzeczowionymi argumentami typowanymi 252
- 9.2.4. Ograniczenia urzeczowionych argumentów typowanych 253
- 9.3. Wariancje, typy generyczne i podtypy 254
- 9.3.1. Idea wariancji i umieszczanie wartości w argumentach funkcji 254
- 9.3.2. Klasy, typy i podtypy 255
- 9.3.3. Kowariancja: zachowanie zależności między podtypami 257
- 9.3.4. Kontrawariancja: odwrotna zależność podtypów 261
- 9.3.5. Wariancja typu w miejscu deklaracji 263
- 9.3.6. Projekcja z gwiazdką: symbol * zamiast argumentu typowanego 266
- 9.4. Podsumowanie 270
- 10.1. Deklarowanie i stosowanie adnotacji 272
- 10.1.1. Stosowanie adnotacji 272
- 10.1.2. Adres adnotacji 273
- 10.1.3. Dostosowywanie procesu serializacji JSON za pomocą adnotacji 275
- 10.1.4. Deklarowanie adnotacji 277
- 10.1.5. Metaadnotacje: kontrolowanie procesu przetwarzania adnotacji 277
- 10.1.6. Klasy jako argumenty adnotacji 278
- 10.1.7. Klasy generyczne jako argumenty adnotacji 279
- 10.2. Refleksja: badanie obiektów w trakcie działania kodu 280
- 10.2.1. Interfejs API refleksji w Kotlinie: interfejsy KClass, KCallable, KFunction i KProperty 281
- 10.2.2. Serializacja obiektów z wykorzystaniem refleksji 285
- 10.2.3. Dostosowywanie serializacji za pomocą adnotacji 286
- 10.2.4. Analiza danych JSON i deserializacja obiektów 289
- 10.2.5. Ostatni etap deserializacji: wywołanie metody callBy() i utworzenie obiektu za pomocą refleksji 293
- 10.3. Podsumowanie 297
- 11.1. Od interfejsu API do języka DSL 300
- 11.1.1. Idea języków domenowych 301
- 11.1.2. Wewnętrzny język DSL 302
- 11.1.3. Struktura języka DSL 303
- 11.1.4. Generowanie kodu HTML za pomocą wewnętrznego języka DSL 304
- 11.2. Tworzenie strukturalnego interfejsu API: wyrażenia lambda z odbiornikami w języku DSL 305
- 11.2.1. Wyrażenie lambda z odbiornikiem i typ funkcyjny rozszerzający 305
- 11.2.2. Wyrażenia lambda z odbiornikami w generatorze HTML 309
- 11.2.3. Generatory w Kotlinie, abstrakcje i powtarzalny kod 313
- 11.3. Bardziej elastyczne zagnieżdżanie bloków kodu dzięki konwencji invoke 316
- 11.3.1. Konwencja invoke, czyli obiekty wywoływane tak jak funkcje 316
- 11.3.2. Konwencja invoke i typy funkcyjne 317
- 11.3.3. Konwencja invoke w języku DSL: deklarowanie zależności w narzędziu Gradle 318
- 11.4. Język DSL w praktyce 319
- 11.4.1. Łączenie wywołań infix i asercja should w platformach testowych 319
- 11.4.2. Rozszerzenia typów prostych i przetwarzanie dat 321
- 11.4.3. Funkcje rozszerzające i wewnętrzny język DSL do obsługi zapytań SQL 322
- 11.4.4. Biblioteka Anko i dynamiczne tworzenie interfejsu użytkownika w systemie Android 325
- 11.5. Podsumowanie 327
- A.1. Kompilowanie kodu Kotlin za pomocą narzędzia Gradle 331
- A.1.1. Kompilowanie za pomocą narzędzia Gradle aplikacji dla systemu Android 332
- A.1.2. Kompilowanie projektów wykorzystujących adnotacje 332
- A.2. Kompilowanie kodu Kotlin za pomocą narzędzia Maven 333
- A.3. Kompilowanie kodu Kotlin za pomocą narzędzia Ant 333
- B.1. Umieszczanie komentarzy dokumentacyjnych 335
- B.2. Generowanie dokumentacji interfejsu API 336
- C.1. Testowanie kodu 339
- C.2. Wstrzykiwanie zależności 340
- C.3. Serializacja JSON 340
- C.4. Klienty HTTP 340
- C.5. Aplikacje WWW 340
- C.6. Operacje na bazach danych 341
- C.7. Narzędzia i struktury danych 341
- C.8. Aplikacje stacjonarne 341
Przedmowa 11
Wstęp 13
Podziękowania 15
O książce 17
O autorach 21
CZĘŚĆ I. WPROWADZENIE DO JĘZYKA KOTLIN 23
Rozdział 1. Kotlin: co to jest i po co? 25
Rozdział 2. Podstawy języka Kotlin 39
Rozdział 3. Definiowanie i wywoływanie funkcji 65
Rozdział 4. Klasy, obiekty i interfejsy 89
Rozdział 5. Wyrażenia lambda 123
Rozdział 6. System typów danych 153
CZĘŚĆ II. WZBOGACANIE KOTLINA 191
Rozdział 7. Przeciążanie operatorów oraz inne konwencje 193
Rozdział 8. Funkcje wysokopoziomowe: wyrażenia lambda jako argumenty oraz wyniki 219
Rozdział 9. Typy generyczne 241
Rozdział 10. Adnotacje i refleksja 271
Rozdział 11. Definiowanie języka DSL 299
DODATKI 329
Dodatek A. Kompilowanie projektów Kotlin 331
Dodatek B. Dokumentowanie kodu Kotlin 335
Dodatek C. Ekosystem Kotlina 339
Skorowidz 343
Oceny i opinie klientów: Kotlin w akcji Dmitry Jemerov, Svetlana Isakova (5) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(1)
(1)
(2)
(0)
(0)
(1)
więcej opinii