Kotlin (język programowania)
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(2)
Forma i typ
Książki
(2)
Publikacje fachowe
(2)
Publikacje dydaktyczne
(1)
Dostępność
tylko na miejscu
(2)
Placówka
Biblioteka WEAiI
(2)
Autor
Griffiths David (1969- )
(1)
Griffiths Dawn
(1)
Isakova Svetlana
(1)
Jemerov Dmitry
(1)
Rajca Piotr
(1)
Rok wydania
2020 - 2024
(1)
2010 - 2019
(1)
Okres powstania dzieła
2001-
(2)
Kraj wydania
Polska
(2)
Język
polski
(2)
Temat
Budownictwo
(2412)
Zarządzanie
(2038)
Matematyka
(1930)
Elektrotechnika
(1896)
Przedsiębiorstwa
(1790)
Kotlin (język programowania)
(-)
Fizyka
(1535)
Informatyka
(1502)
Maszyny
(1228)
Fizjoterapia
(1175)
Wytrzymałość materiałów
(1158)
Ochrona środowiska
(1023)
Sport
(1013)
Turystyka
(953)
Elektronika
(946)
Ekonomia
(932)
Mechanika
(932)
Automatyka
(916)
Język angielski
(874)
Samochody
(867)
Rachunkowość
(821)
Chemia
(808)
Rehabilitacja
(800)
Polska
(791)
Gospodarka
(778)
Komunikacja marketingowa
(761)
Technika
(743)
Konstrukcje budowlane
(727)
Wychowanie fizyczne
(725)
Przemysł
(723)
Prawo pracy
(712)
Piłka nożna
(709)
Unia Europejska
(699)
Transport
(673)
Elektroenergetyka
(667)
Marketing
(638)
Architektura
(637)
Innowacje
(621)
Naprężenia i odkształcenia
(615)
OZE
(606)
Programowanie (informatyka)
(590)
Trening
(586)
Energetyka
(585)
Programy komputerowe
(585)
Technologia chemiczna
(567)
Rolnictwo
(556)
Biomasa
(543)
Analiza numeryczna
(532)
Prawo
(524)
Odnawialne źródła energii
(520)
Sterowanie
(520)
Komputery
(517)
Materiałoznawstwo
(517)
Produkcja
(517)
Symulacja
(516)
Inwestycje
(508)
Praca
(504)
Zarządzanie jakością
(497)
Zarządzanie zasobami ludzkimi (HRM)
(496)
Analiza matematyczna
(495)
Dzieci
(492)
Energia elektryczna
(489)
Urbanistyka
(488)
Materiały budowlane
(482)
Logistyka gospodarcza
(480)
Rynek pracy
(474)
Finanse
(468)
Maszyny elektryczne
(468)
Przedsiębiorstwo
(468)
Szkolnictwo wyższe
(468)
Psychologia
(467)
Modele matematyczne
(465)
Internet
(464)
Metale
(462)
Nauka
(456)
Marketing internetowy
(453)
Systemy informatyczne
(448)
Statystyka matematyczna
(447)
Języki programowania
(433)
Skrawanie
(432)
Reklama
(431)
Rehabilitacja medyczna
(429)
Mechanika budowli
(425)
Działalność gospodarcza
(422)
Organizacja
(417)
Telekomunikacja
(413)
Metrologia
(412)
Pedagogika
(410)
Drgania
(409)
Trener
(406)
Ubezpieczenia społeczne
(394)
Controlling
(392)
Optymalizacja
(392)
Historia
(388)
Filozofia
(385)
Podatki
(385)
Statystyka
(384)
Socjologia
(383)
Banki
(379)
BHP
(375)
Rachunkowość zarządcza
(374)
Gatunek
Podręcznik
(2)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(2)
2 wyniki Filtruj
Książka
W koszyku
Kotlin / Dawn Griffiths, David Griffiths ; przekład Piotr Rajca. - Gliwice : Helion, copyright 2020. - XXXI, [1], 434 strony : ilustracje ; 23 cm.
(Rusz głową!)
Tytuł oryginału: Head first Kotlin : a brain-friendly guide.
Na okładce i stronie tytułowej nazwa wydawcy oryginału: O'Reilly.
Na stronie redakcyjnej również ISBN oryginału 9781491996690.
Tytuł oryginału serii: Head First.
ROZDZIAŁ 1. Zaczynamy. Szybki skok Witamy w Kotliczynie (2) Kotlina można używać niemal wszędzie (3) Co zrobimy w tym rozdziale (4) Instalowanie IntelliJ IDEA (Community Edition) (7) Stwórzmy prostą aplikację (8) Właśnie utworzyłeś swój pierwszy projekt w Kotlinie (11) Dodaj do projektu nowy plik Kotlina (12) Anatomia funkcji main (13) Dodaj funkcję main do pliku App.kt (14) Jazda próbna (15) Co możemy nakazać w funkcji main? (16) W kółko i w kółko, i w kółko... (17) Przykład pętli (18) Rozgałęzienia warunkowe (19) Używanie if do zwracania wartości (20) Aktualizujemy funkcję main (21) Stosowanie interaktywnej powłoki Kotlina (23) W REPL można wpisywać fragmenty mające wiele wierszy kodu (24) Wymieszane komunikaty (27) Twój przybornik do Kotlina (30) ROZDZIAŁ 2. Typy proste i zmienne. Być zmienną Twój kod potrzebuje zmiennych (32) Co się dzieje, kiedy zadeklarujesz zmienną? (33) Zmienna zawiera referencję do obiektu (34) Typy proste Kotlina (35) Jak jawnie zadeklarować typ zmiennej? (37) Używaj wartości dostosowanej do typu zmiennej (38) Przypisywanie wartości innej zmiennej (39) Trzeba skonwertować wartość (40) Co się dzieje podczas konwertowania wartości? (41) Uważaj na przepełnienie (42) Zapisywanie wielu wartości w tablicy (45) Tworzymy aplikacje HasłoMator (46) Dodaj kod do pliku HasloMator.kt (47) Kompilator domyśla się typu tablicy na podstawie jej wartości (49) var oznacza, że zmienna może wskazywać na inną tablicę (50) val oznacza, że zmienna zawsze będzie wskazywać tę samą tablicę... (51) Zamotane referencje (54) Twój przybornik do Kotlina (58) ROZDZIAŁ 3. Funkcje. Wychodzimy poza main Napiszmy grę: Kamień, nożyce, papier (60) Ogólny projekt gry (61) Wybieranie opcji przez grę (63) Jak się tworzy funkcje? (64) Do funkcji można przekazywać więcej informacji (65) Pobieranie informacji z funkcji (66) Funkcje, których ciałem jest jedno wyrażenie (67) Dodajemy funkcję getGameChoice do pliku Game.kt (68) Funkcja getUserChoice (75) Jak działają pętle for? (76) Zapytaj gracza, jaką opcję wybiera (78) Pomieszane komunikaty (79) Musimy sprawdzić dane wpisane przez gracza (81) Dodajemy getUserChoice do pliku Game.kt (83) Dodajemy funkcję printResult do pliku Game.kt (87) Twój przybornik do Kotlina (89) ROZDZIAŁ 4. Klasy i obiekty. Trochę klasy Typy obiektowe są definiowane przy użyciu klas (92) Jak projektować własne klasy? (93) Zdefiniujmy klasę Dog (94) Jak utworzyć obiekt Dog? (95) Jak można odwoływać się do właściwości i funkcji? (96) Tworzymy aplikację Piosenki (97) Cud tworzenia obiektu (98) Jak są tworzone obiekty? (99) Za kulisami: Wywoływanie konstruktora (100) Dokładniejsze poznawanie właściwości (105) Elastyczna inicjalizacja właściwości (106) Jak używać bloków inicjalizatora? (107) Właściwości MUSZĄ zostać zainicjowane (108) Jak można weryfikować wartości właściwości? (111) Pisanie własnego akcesora get (112) Pisanie własnego akcesora set (113) Kompletny kod projektu Psy (115) Twój przybornik do Kotlina (120) ROZDZIAŁ 5. Klasy pochodne i bazowe. Stosowanie dziedziczenia Dziedziczenie umożliwia unikanie powielania kodu (122) Co mamy zamiar zrobić? (123) Projektujemy strukturę dziedziczenia klas zwierząt (124) Używaj dziedziczenia, by unikać powielania kodu w klasach pochodnych (125) Co powinny przesłaniać klasy pochodne? (126) Możemy pogrupować niektóre zwierzęta (127) Dodajemy klasy Canine i Feline (128) Sprawdzaj hierarchie klas, używając testu JEST (129) Test JEST działa w dowolnym miejscu drzewa dziedziczenia (130) Stworzymy parę kotliczyńskich zwierząt (133) Deklarujemy klasę bazową oraz jej właściwości i funkcje jako otworzone (134) Jak klasa pochodna dziedziczy po bazowej? (135) Jak (i kiedy) przesłaniać właściwości? (136) Przesłanianie właściwości pozwala na więcej niż tylko określanie wartości domyślnych (137) Jak przesłaniać funkcje? (138) Przesłonięte funkcje i właściwości pozostają otworzone... (139) Dodajemy klasę Hippo do projektu Zwierzęta (140) Dodajemy klasy Canine i Wolf (143) Która funkcja zostanie wywołana? (144) Kiedy wywołujemy funkcję na rzecz zmiennej, wywoływana jest funkcja obiektu (146) Typów bazowych można używać w parametrach funkcji i jako typu zwracanego wyniku (147) Zaktualizowany kod pliku Animals.kt (148) Twój przybornik do Kotlina (153) ROZDZIAŁ 6. Klasy abstrakcyjne i interfejsy. Poważny polimorfizm Hierarchia klasy Animal raz jeszcze (156) Obiektów niektórych klas po prostu nie powinno się tworzyć (157) Abstrakcyjna czy konkretna? (158) Klasy abstrakcyjne mogą mieć abstrakcyjne właściwości i funkcje (159) Klasa Animal ma dwie funkcje abstrakcyjne (160) Jak zaimplementować klasę abstrakcyjną? (162) TRZEBA zaimplementować wszystkie abstrakcyjne właściwości i funkcje (163) Zaktualizujmy kod projektu Zwierzęta (164) Niezależne klasy mogą mieć wspólne zachowania (169) Interfejsy pozwalają definiować wspólne zachowania POZA hierarchią klasy bazowej (170) Zdefiniujmy interfejs Roamable (171) Jak definiować właściwości w interfejsach? (172) Zadeklaruj, że klasa implementuje interfejs... (173) Jak implementować wiele interfejsów? (174) Jak określić, czy stworzyć klasę, klasę pochodną, klasę abstrakcyjną czy interfejs? (175) Aktualizujemy projekt Zwierzęta (176) Interfejsy pozwalają na stosowanie polimorfizmu (181) Gdzie używać operatora is? (182) Używaj when do porównywania zmiennej z grupą opcji (183) Operator is zazwyczaj wykonuje inteligentne rzutowanie (184) Używaj operatora as w celu jawnego rzutowania (185) Aktualizujemy projekt Zwierzęta (186) Twój przybornik do Kotlina (189) ROZDZIAŁ 7. Klasy danych. Używanie danych Operator == wywołuje funkcję o nazwie equals (192) Funkcja equals pochodzi z klasy bazowej Any (193) Wspólne zachowania zdefiniowane w klasie Any (194) Możemy chcieć, by funkcja equals sprawdzała, czy obiekty są równoważne (195) Klasa danych pozwala na tworzenie obiektów danych (196) Klasy danych przesłaniają odziedziczone zachowania (197) Kopiowanie obiektów danych przy użyciu funkcji copy (198) Klasy danych definiują funkcje componentN... (199) Tworzymy projekt Przepisy (201) Pomieszane komunikaty (203) Wygenerowane funkcje używają jedynie właściwości zdefiniowanych w konstruktorze (205) Inicjalizowanie wielu właściwości może powodować powstawanie kłopotliwego kodu (206) Jak używać domyślnych wartości konstruktora? (207) Także funkcje mogą używać wartości domyślnych (210) Przeciążanie funkcji (211) Zaktualizujmy projekt Przepisy (212) Ciąg dalszy kodu... (213) Twój przybornik do Kotlina (217) ROZDZIAŁ 8. Wartość null i wyjątki. Cały i zdrów Jak usuwać ze zmiennych referencje do obiektu? (220) Referencje usuwamy, używając null (221) Typów akceptujących null możesz używać wszędzie tam, gdzie typów, które null nie akceptują (222) Jak utworzyć tablice typu akceptującego null? (223) Jak odwoływać się do funkcji i właściwości typów akceptujących null? (224) Dbaj o bezpieczeństwo, używając bezpiecznych wywołań (225) Bezpieczne wywołania można łączyć w łańcuch (226) Ciąg dalszy historii... (227) Bezpiecznych wywołań można używać do przypisywania wartości... (228) Używaj let, by wykonywać kod, jeśli wartości będą różne od null (231) Stosowanie let z elementami tablic (232) Zamiast używać wyrażenia if... (233) Operator !! celowo zgłasza wyjątek NullPointerException (234) Tworzymy projekt Wartości Null (235) Ciąg dalszy kodu... (236) Wyjątki są zgłaszane w wyjątkowych sytuacjach (239) Przechwytuj wyjątki, używając try i catch (240) Użyj finally, by określić czynności, które mają być wykonane zawsze (241) Wyjątek to obiekt typu Exception (242) Wyjątki można zgłaszać jawnie (244) Try i catch to wyrażenia (245) Twój przybornik do Kotlina (250) ROZDZIAŁ 9. Kolekcje. Zorganizuj się Tablice mogą być przydatne... (252) ...są jednak rzeczy, których tablice nie potrafią (253) Jeśli masz wątpliwości, sięgnij do Biblioteki (254) List, Set oraz Map (255) Fantastyczne listy... (256) Tworzenie listy MutableList... (257) Możemy usunąć wartość... (258) Można zmieniać kolejność i operować na większych grupach elementów... (259) Utwórz projekt Kolekcje (260) Listy dopuszczają duplikaty (263) Jak tworzyć zbiory? (264) Jak zbiory wyszukują duplikaty? (265) Kody mieszające i równość (266) Reguły przesłaniania funkcji hashCode i equals (267) Jak używać klasy MutableSet? (268) Aktualizujemy projekt Kolekcje (270) Czas na mapy (276) Sposoby korzystania z map (277) Tworzenie map MutableMap (278) Z mapy MutableMap można usuwać elementy (279) Mapy Map i MutableMap można kopiować (280) Kompletny kod projektu Kolekcje (281) Wymieszane komunikaty (285) Twój przybornik do Kotlina (287) ROZDZIAŁ 10. Typy sparametryzowane. Odróżniaj wariancję od kontrawariancji Kolekcje używają typów sparametryzowanych (290) Jak jest zdefiniowany typ MutableList? (291) Stosowanie parametrów typów w MutableList (292) Co można robić ze sparametryzowanymi klasami i interfejsami? (293) Oto co mamy zamiar zrobić (294) Tworzymy hierarchię klasy Pet (295) Definiujemy klasę Contest (296) Dodajemy właściwość scores (297) Tworzymy funkcję getWinners (298) Tworzymy kilka obiektów Contest (299) Tworzymy projekt TypySparametryzowane (301) Hierarchia typu Retailer (305) Definiujemy interfejs Retailer (306) Możemy tworzyć obiekty CatRetailer, DogRetailer i FishRetailer... (307) Użyj out, by typ sparametryzowany był kowariantny (308) Aktualizujemy projekt TypySparametryzowane (309) Potrzebujemy klasy Vet (313) Tworzenie obiektów Vet (314) Użyj in, by typ sparametryzowany był kontrawariantny (315) Typ sparametryzowany może być lokalnie kontrawariantny (316) Aktualizujemy projekt TypySparametryzowane (317) Twój przybornik do Kotlina (324) ROZDZIAŁ 11. Lambdy i funkcje wyższego rzędu. Kod używany jak dane Prezentacja lambd (326) Jak wygląda kod lambdy? (327) Lambdy można zapisywać w zmiennych (328) Wyrażenia lambda mają typ (331) Kompilator może wywnioskować typ parametrów lambdy (332) Używaj lambdy dostosowanej do typu zmiennej (333) Tworzenie projektu Lambdy (334) Możesz przekazać lambdę do funkcji (339) Wywołanie lambdy w ciele funkcji (340) Co się dzieje podczas wywołania funkcji? (341) Lambdę można przenieść poza nawiasy ()... (343) Aktualizujemy projekt Lambdy (344) Funkcje mogą zwracać lambdy (347) Piszemy funkcję, która pobiera I zwraca lambdy (348) Jak można używać funkcji combine? (349) Użyj typealias, by nadać inną nazwę istniejącemu typowi danych (353) Aktualizujemy kod projektu (354) Twój przybornik do Kotlina (361) ROZDZIAŁ 12. Wbudowane funkcje wyższego rzędu. Wzmocnij swój kod Kotlin udostępnia sporo funkcji wyższego rzędu (364) Funkcje min i max operują na prostych typach danych (365) Bliższe spojrzenie na parametry funkcji minBy i maxBy (366) Funkcje sumBy i sumByDouble (367) Tworzymy projekt Spożywczak (368) Poznaj funkcję filter (371) Używaj funkcji map, by przekształcać kolekcje (372) Co się dzieje podczas wykonywania kodu? (373) Ciąg dalszy historii... (374) Funkcja forEach działa jak pętla (375) Funkcja forEach nie zwraca wyniku (376) Aktualizujemy projekt Spożywczak (377) Użyj groupBy, by podzielić kolekcję na grupy (381) Funkcji groupBy można używać w łańcuchach wywołań (382) Jak używać funkcji fold (383) Za kulisami: funkcja fold (384) Więcej przykładów użycia funkcji fold (386) Aktualizujemy projekt Spożywczak (387) Pomieszane komunikaty (391) Twój przybornik do Kotlina (394) Wyjeżdżamy... (395) Dodatek A. Koprocedury. Współbieżne wykonywanie kodu Dodatek B. Testowanie. Pociągnij swój kod do odpowiedzialności Dodatek C. Pozostałości. Dziesięć najważniejszych rzeczy (których nie opisaliśmy) 1. Pakiety i importowanie (416) 2. Modyfikatory widoczności (418) 3. Klasy wyliczeniowe (420) 4. Klasy zapieczętowane (422) 5. Klasy zagnieżdżone i wewnętrzne (424) 6. Deklaracje obiektów i wyrażenia (426) 7. Rozszerzenia (429) 8. Return, break i continue (430) 9. Więcej zabawy z funkcjami (432) 10. Współdziałanie (434)
Sygnatura czytelni BWEAiI: XII N 153
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 149895 N (1 egz.)
Książka
W koszyku
Indeks.
CZĘŚĆ I. WPROWADZENIE DO JĘZYKA KOTLIN 23 Rozdział 1. Kotlin: co to jest i po co? 25 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 Rozdział 2. Podstawy języka Kotlin 39 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 Rozdział 3. Definiowanie i wywoływanie funkcji 65 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 Rozdział 4. Klasy, obiekty i interfejsy 89 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 Rozdział 5. Wyrażenia lambda 123 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 Rozdział 6. System typów danych 153 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 CZĘŚĆ II. WZBOGACANIE KOTLINA 191 Rozdział 7. Przeciążanie operatorów oraz inne konwencje 193 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
Rozdział 8. Funkcje wysokopoziomowe: wyrażenia lambda jako argumenty oraz wyniki 219 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 Rozdział 9. Typy generyczne 241 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 Rozdział 10. Adnotacje i refleksja 271 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 Rozdział 11. Definiowanie języka DSL 299 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 Dodatek A. Kompilowanie projektów Kotlin 331 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 Dodatek B. Dokumentowanie kodu Kotlin 335 B.1. Umieszczanie komentarzy dokumentacyjnych 335 B.2. Generowanie dokumentacji interfejsu API 336 Dodatek C. Ekosystem Kotlina 339 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
Sygnatura czytelni BWEAiI: XII N 129
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 147417 N (1 egz.)
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności