Programowanie w jezyku Kotlin The Big Nerd Ranch Guide.pdf

(716 KB) Pobierz
Tytuł oryginału: Kotlin Programming: The Big Nerd Ranch Guide
Tłumaczenie: Piotr Rajca
ISBN: 978-83-283-5536-1
Authorized translation from the English language edition, entitled KOTLIN PROGRAMMING: THE BIG
NERD RANCH GUIDE, 1st Edition by SKEEN, JOSH; GREENHALGH, DAVID; published by Pearson
Education, Inc, publishing as The Big Nerd Ranch Guides.
Copyright © 2018 Big Nerd Ranch, LLC
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education Inc.
Polish language edition published by HELION S.A. Copyright © 2019.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock Images LLC.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/prokot.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/prokot
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Dlaczego Kotlin? ...................................................................................................................................15
Dla kogo jest przeznaczona ta książka? .............................................................................................16
Jak korzystać z tej książki? ...................................................................................................................16
Dla ciekawskich .............................................................................................................................17
Wyzwania .......................................................................................................................................17
Konwencje typograficzne .............................................................................................................17
Patrząc w przyszłość .............................................................................................................................17
Instalowanie IntelliJ IDEA ..................................................................................................................19
Pierwszy projekt programu w Kotlinie .............................................................................................20
Tworzenie pierwszego pliku źródłowego w Kotlinie ...............................................................25
Wykonywanie pliku źródłowego ................................................................................................27
Kotlin REPL ...........................................................................................................................................29
Dla ciekawskich: Dlaczego warto używać właśnie IntelliJ? ............................................................30
Dla ciekawskich: Pisanie kodu przeznaczonego na JVM ...............................................................31
Wyzwanie: Arytmetyka REPL ............................................................................................................32
Typy ........................................................................................................................................................33
Deklarowanie zmiennych ....................................................................................................................34
Wbudowane typy języka Kotlin .........................................................................................................36
Zmienne tylko do odczytu ..................................................................................................................37
Wnioskowanie typów ..........................................................................................................................40
Stałe czasu kompilacji ..........................................................................................................................41
Oglądanie kodów bajtowych ...............................................................................................................42
Dla ciekawskich: Podstawowe typy danych Javy w Kotlinie ..........................................................45
Wyzwanie: hasSteed .............................................................................................................................46
Wyzwanie: Szynk Hipolit’a .................................................................................................................46
Wyzwanie: Magiczne lustro ................................................................................................................46
Kup książkę
Poleć książkę
Instrukcje if/else ....................................................................................................................................47
Dodawanie kolejnych warunków ................................................................................................50
Zagnieżdżone instrukcje if/else ...................................................................................................52
Bardziej eleganckie wyrażenia warunkowe ...............................................................................53
Zakresy ...................................................................................................................................................59
Wyrażenia when ...................................................................................................................................60
Szablony łańcuchowe ...........................................................................................................................62
Wyzwanie: Eksperymenty z zakresami .............................................................................................64
Wyzwanie: Rozbudowa aury ..............................................................................................................64
Wyzwanie: Konfigurowalny format statusu .....................................................................................65
Wyodrębnianie kodu do funkcji ........................................................................................................67
Anatomia funkcji ..................................................................................................................................69
Nagłówek funkcji ...........................................................................................................................70
Ciało funkcji ...................................................................................................................................72
Zasięg funkcji .................................................................................................................................73
Wywoływanie funkcji ..........................................................................................................................74
Refaktoryzacja funkcji .........................................................................................................................75
Pisanie własnych funkcji .....................................................................................................................76
Argumenty domyślne ..........................................................................................................................78
Funkcje jednowyrażeniowe .................................................................................................................79
Funkcje typu Unit .................................................................................................................................80
Nazwane argumenty funkcji ...............................................................................................................81
Dla ciekawskich: Typ Nothing ...........................................................................................................82
Dla ciekawskich: Funkcje plikowe w Javie ........................................................................................83
Dla ciekawskich: Przeciążanie funkcji ...............................................................................................84
Dla ciekawskich: Nazwy funkcji w odwrotnych apostrofach ........................................................85
Wyzwanie: Funkcje jednowyrażeniowe ............................................................................................87
Wyzwanie: Poziom upojenia magicznego ........................................................................................87
Wyzwanie: Status upojenia magicznego ...........................................................................................87
Funkcje anonimowe .............................................................................................................................89
Typ funkcyjny ................................................................................................................................91
Niejawne instrukcje return ..........................................................................................................92
Argumenty funkcyjne ...................................................................................................................92
Słowo kluczowe it ..........................................................................................................................93
Akceptowanie wielu argumentów ...............................................................................................94
Wsparcie dla wnioskowania typów ...................................................................................................95
Definiowanie funkcji akceptujących inne funkcje ...........................................................................96
Składnia skrócona .........................................................................................................................97
Wpisywanie funkcji ..............................................................................................................................98
Referencje funkcji .................................................................................................................................99
Typ funkcyjny jako typ wyniku ........................................................................................................100
Dla ciekawskich: Funkcje lambda w Kotlinie są domknięciami .................................................102
Dla ciekawskich: Funkcje lambda a anonimowe klasy wewnętrzne ...........................................102
Kup książkę
Poleć książkę
Akceptowanie wartości pustych .......................................................................................................105
Jawny typ null w Kotlinie ..................................................................................................................107
W czasie kompilacji czy w czasie wykonywania? ..........................................................................108
Bezpieczeństwo wartości pustych ....................................................................................................109
Opcja pierwsza: bezpieczny operator wywołania ...................................................................110
Opcja druga: operator podwójnego wykrzyknika ..................................................................111
Opcja trzecia: użycie if do sprawdzania, czy wartość jest równa null ..................................112
Wyjątki .................................................................................................................................................115
Zgłaszanie wyjątków ...................................................................................................................116
Niestandardowe wyjątki .............................................................................................................117
Obsługa wyjątków .......................................................................................................................118
Warunki wstępne ...............................................................................................................................120
Null: do czego się przydaje? ..............................................................................................................122
Dla ciekawskich: Wyjątki sprawdzane i niesprawdzane ...............................................................123
Dla ciekawskich: Jak wymuszana jest możliwość stosowania wartości null? ............................123
Pobieranie fragmentów łańcuchów .................................................................................................125
Funkcja substring ........................................................................................................................125
Funkcja split .................................................................................................................................127
Operacje na łańcuchach ....................................................................................................................129
Łańcuchy są niezmienne ............................................................................................................131
Porównywanie łańcuchów ................................................................................................................131
Dla ciekawskich: Unicode .................................................................................................................133
Dla ciekawskich: Przeglądanie znaków w łańcuchu ......................................................................133
Wyzwanie: Usprawnianie smoczej mowy ......................................................................................134
Typy liczbowe .....................................................................................................................................135
Liczby całkowite .................................................................................................................................136
Liczby dziesiętne .................................................................................................................................138
Konwersja łańcuchów na typy liczbowe .........................................................................................138
Konwersja typu Int na Double .........................................................................................................139
Formatowanie wartości typu Double ..............................................................................................141
Konwertowanie wartości typu Double na Int ................................................................................142
Dla ciekawskich: Operacje bitowe ...................................................................................................143
Wyzwanie: Pozostałe kwaterki .........................................................................................................144
Wyzwanie: Obsługa ujemnego stanu sakiewki ..............................................................................144
Wyzwanie: Smoczykojn .....................................................................................................................145
Funkcja apply ......................................................................................................................................147
Funkcja let ...........................................................................................................................................148
Funkcja run .........................................................................................................................................149
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin