GO RUSZ GŁOWĄ!

89.10

Na stanie

SPIS TREŚCI

Wprowadzenie

  • Dla kogo jest przeznaczona ta książka? (xxvi)
  • Wiemy, co sobie myślisz (xxvii)
  • Wiemy, co sobie myśli Twój mózg (xxvii)
  • Metapoznanie – myślenie o myśleniu (xxix)
  • Oto co zrobiliśmy (xxx)
  • Przeczytaj to (xxxii)
  • Podziękowania (xxxiii)

ROZDZIAŁ 1. Zaczynajmy. Podstawy składni

  • Do biegu, gotowi, Go! (2)
  • Narzędzie Go Playground (3)
  • Co to wszystko znaczy? (4)
  • A jeśli coś się nie powiedzie? (5)
  • Wywoływanie funkcji (7)
  • Funkcja Println (7)
  • Używanie funkcji z innych pakietów (8)
  • Wartości zwracane przez funkcje (9)
  • Szablon programu w Go (11)
  • Łańcuchy znaków (11)
  • Runy (12)
  • Wartości logiczne (12)
  • Liczby (13)
  • Operacje matematyczne i porównania (13)
  • Typy (14)
  • Deklarowanie zmiennych (16)
  • Wartości zerowe (17)
  • Krótkie deklaracje zmiennych (19)
  • Reguły tworzenia nazw (21)
  • Konwersje (22)
  • Instalowanie Go na komputerze (25)
  • Kompilowanie kodu w języku Go (26)
  • Narzędzia języka Go (27)
  • Szybkie sprawdzanie działania kodu za pomocą polecenia go run (27)
  • Twój przybornik do Go (28)

ROZDZIAŁ 2. Jaki kod uruchomić w następnej kolejności? Instrukcje warunkowe i pętle

  • Wywoływanie metod (32)
  • Obliczanie oceny (34)
  • Funkcje i metody zwracające wiele wartości (36)
  • Rozwiązanie 1. Zignorować wartość błędu za pomocą pustego identyfikatora (37)
  • Rozwiązanie 2. Obsługa błędu (38)
  • Instrukcje warunkowe (39)
  • Warunkowe rejestrowanie błędu krytycznego (42)
  • Unikaj zakrywania nazw (44)
  • Przekształcanie łańcuchów znaków na liczby (46)
  • Bloki (49)
  • Bloki i zasięg zmiennych (50)
  • Program do wystawiania ocen jest gotowy! (52)
  • Tylko jedna zmienna w krótkiej deklaracji zmiennej musi być nowa (54)
  • Napiszmy grę (55)
  • Nazwy pakietów a ścieżki importowania (56)
  • Generowanie liczby losowej (57)
  • Pobieranie liczby całkowitej z klawiatury (59)
  • Porównywanie wytypowanej liczby z docelową (60)
  • Pętle (61)
  • Instrukcje inicjalizacji i instrukcje wykonywane po iteracji są opcjonalne (63)
  • Używanie pętli w grze w zgadywanie liczb (66)
  • Wychodzenie z pętli zgadywania liczby (69)
  • Ujawnianie docelowej liczby (70)
  • Gratulacje, gra jest kompletna! (72)
  • Twój przybornik do Go (74)

ROZDZIAŁ 3. Wywołaj mnie. Funkcje

  • Powtarzający się kod (80)
  • Formatowanie danych wyjściowych z użyciem funkcji Printf i Sprintf (81)
  • Instrukcje formatowania (82)
  • Formatowanie długości wartości (83)
  • Formatowanie długości liczb ułamkowych (84)
  • Używanie funkcji Printf w kalkulatorze ilości farby (85)
  • Deklarowanie funkcji (86)
  • Deklarowanie parametrów funkcji (87)
  • Używanie funkcji w kalkulatorze ilości farby (88)
  • Funkcje i zasięg zmiennych (90)
  • Wartości zwracane przez funkcje (91)
  • Używanie zwracanej wartości w kalkulatorze ilości farby (93)
  • W funkcji paintNeeded potrzebna jest obsługa błędów (95)
  • Wartości błędów (96)
  • Deklarowanie wielu zwracanych wartości (97)
  • Używanie wielu zwracanych wartości w funkcji paintNeeded (98)
  • Zawsze obsługuj błędy! (99)
  • W parametrach funkcji zapisywane są kopie argumentów (102)
  • Wskaźniki (103)
  • Typy wskaźnikowe (104)
  • Pobieranie lub modyfikowanie wartości wskazywanej przez wskaźnik (105)
  • Używanie wskaźników w funkcjach (107)
  • Poprawianie funkcji double z użyciem wskaźników (108)
  • Twój przybornik do Go (110)

ROZDZIAŁ 4. Pakiety kodu. Pakiety

  • Różne programy, ta sama funkcja (114)
  • Współdzielenie kodu w programach z użyciem pakietów (116)
  • Kod pakietów jest przechowywany w obszarze roboczym języka Go (117)
  • Tworzenie nowego pakietu (118)
  • Importowanie pakietów do programu (119)
  • W pakietach używany jest ten sam układ plików (120)
  • Konwencje tworzenia nazw pakietów (123)
  • Kwalifikatory w postaci nazw pakietów (123)
  • Przenoszenie wspólnego kodu do pakietu (124)
  • Stałe (126)
  • Zagnieżdżone katalogi pakietów i ścieżki importowania (128)
  • Instalowanie programów wykonywalnych za pomocą instrukcji go install (130)
  • Modyfikowanie obszaru roboczego za pomocą zmiennej środowiskowej GOPATH (131)
  • Ustawianie zmiennej GOPATH (132)
  • Publikowanie pakietów (133)
  • Pobieranie i instalowanie pakietów z użyciem polecenia go get (137)
  • Wczytywanie dokumentacji pakietu za pomocą polecenia go doc (139)
  • Dokumentowanie pakietów z użyciem komentarzy narzędzia doc (141)
  • Wyświetlanie dokumentacji w przeglądarce internetowej (143)
  • Udostępnianie dokumentacji w formacie HTML na swoje potrzeby za pomocą narzędzia godoc (144)
  • Serwer narzędzia godoc udostępnia też TWOJE pakiety! (145)
  • Twój przybornik do Go (146)

ROZDZIAŁ 5. Na liście. Tablice

  • Tablice przechowują kolekcje wartości (150)
  • Wartości zerowe w tablicach (152)
  • Literały tablicowe (153)
  • Funkcje z pakietu fmt potrafią obsługiwać tablice (154)
  • Dostęp do elementów tablicy w pętli (155)
  • Sprawdzanie długości tablicy za pomocą funkcji len (156)
  • Bezpieczne przetwarzanie tablic w pętli za pomocą instrukcji for…range (157)
  • Używanie pustego identyfikatora w pętlach for…range (158)
  • Obliczanie sumy liczb z tablicy (159)
  • Pobieranie średniej liczb z tablicy (161)
  • Wczytywanie pliku tekstowego (163)
  • Wczytywanie pliku tekstowego do tablicy (166)
  • Modyfikowanie programu average, aby wczytywał plik tekstowy (168)
  • Nasz program potrafi przetwarzać tylko trzy wartości! (170)
  • Twój przybornik do Go (172)

ROZDZIAŁ 6. Problem dołączania elementów. Wycinki

  • Wycinki (176)
  • Literały wycinków (177)
  • Operator wycinka (180)
  • Tablice podstawowe (182)
  • Modyfikowanie podstawowych tablic i wycinków (183)
  • Dodawanie elementów do wycinka za pomocą funkcji append (184)
  • Wycinki i wartości zerowe (186)
  • Wczytywanie dodatkowych wierszy plików z użyciem wycinków i funkcji append (187)
  • Sprawdzanie poprawionego programu (189)
  • Zwracanie wycinka nil po wystąpieniu błędu (190)
  • Argumenty wiersza poleceń (191)
  • Pobieranie argumentów wiersza poleceń z wycinka os.Args (192)
  • Operator wycinka można stosować do innych wycinków (193)
  • Modyfikowanie programu, aby używał argumentów wiersza poleceń (194)
  • Funkcje wariadyczne (195)
  • Stosowanie funkcji wariadycznych (197)
  • Użycie funkcji wariadycznej do obliczania średnich (198)
  • Przekazywanie wycinków do funkcji wariadycznych (199)
  • Wycinki uratowały sytuację! (201)
  • Twój przybornik do Go (202)

ROZDZIAŁ 7. Nazywanie danych. Mapy

  • Zliczanie głosów (206)
  • Wczytywanie nazwisk z pliku (207)
  • Zliczanie nazwisk w trudny sposób, z użyciem wycinków (209)
  • Mapy (212)
  • Literały map (214)
  • Wartości zerowe w mapach (215)
  • Wartość zerowa zmiennej reprezentującej mapę to nil (215)
  • Jak odróżnić wartości zerowe od przypisanych? (216)
  • Usuwanie par klucz – wartość za pomocą funkcji delete (218)
  • Modyfikowanie programu zliczającego głosy, aby użyć map (219)
  • Używanie pętli for…range do map (221)
  • Pętla for…range przetwarza mapy w losowej kolejności! (223)
  • Modyfikowanie programu zliczającego głosy – zastosowanie pętli for…range (224)
  • Program do zliczania głosów jest kompletny! (225)
  • Twój przybornik do Go (227)

ROZDZIAŁ 8. Tworzenie struktur do przechowywania danych. Struktury

  • Wycinki i mapy przechowują wartości JEDNEGO typu (232)
  • Struktury są tworzone z wartości WIELU typów (233)
  • Dostęp do pól struktury za pomocą operatora kropki (234)
  • Zapisywanie danych prenumeratorów w strukturze (235)
  • Typy zdefiniowane i struktury (236)
  • Używanie typu zdefiniowanego na dane prenumeratorów magazynu (238)
  • Używanie typów zdefiniowanych razem z funkcjami (239)
  • Modyfikowanie struktury z użyciem funkcji (242)
  • Dostęp do pól struktur za pomocą wskaźnika (244)
  • Przekazywanie dużych struktur z użyciem wskaźników (246)
  • Przenoszenie typu struktury do innego pakietu (248)
  • Nazwa zdefiniowanego typu musi zaczynać się wielką literą, aby została wyeksportowana (249)
  • Nazwy pól struktury muszą zaczynać się wielką literą, aby zostały wyeksportowane (250)
  • Literały struktur (251)
  • Tworzenie struktury typu Employee (253)
  • Tworzenie struktury typu Address (254)
  • Dodawanie struktury jako pola w innym typie (255)
  • Podawanie wartości struktury w innej strukturze (255)
  • Anonimowe pola struktur (258)
  • Zagnieżdżanie struktur (259)
  • Typy zdefiniowane są gotowe! (260)
  • Twój przybornik do Go (261)

ROZDZIAŁ 9. Jesteś w moim typie. Typy zdefiniowane

  • Błędne typy w rzeczywistym życiu (266)
  • Typy zdefiniowane z prostymi typami bazowymi (267)
  • Typy zdefiniowane i operatory (269)
  • Przekształcenia między typami z użyciem funkcji (271)
  • Rozwiązywanie kolizji nazw funkcji z użyciem metod (274)
  • Definiowanie metod (275)
  • Parametr odbiorcy metody jest (prawie) identyczny jak inne parametry (276)
  • Metoda działa (prawie) jak funkcja (277)
  • Wskaźniki jako parametry odbiorcy metody (279)
  • Przeliczanie litrów i mililitrów na galony z użyciem metod (283)
  • Przeliczanie galonów na litry i mililitry z użyciem metod (284)
  • Twój przybornik do Go (285)

ROZDZIAŁ 10. Zachowaj to dla siebie. Hermetyzacja i zagnieżdżanie

  • Tworzenie typu strukturalnego Date (290)
  • Użytkownicy przypisują do pól struktury Date nieprawidłowe wartości! (291)
  • Settery (292)
  • W setterze jako odbiorcę trzeba podać wskaźnik (293)
  • Dodawanie pozostałych setterów (294)
  • Dodawanie sprawdzania poprawności danych do metod (296)
  • Pola nadal mogą zostać ustawione na błędne wartości! (298)
  • Przenoszenie typu Date do innego pakietu (299)
  • Jak sprawić, by pola z typu Date nie były eksportowane? (301)
  • Dostęp do nieeksportowanych pól za pomocą eksportowanych metod (302)
  • Gettery (304)
  • Hermetyzacja (305)
  • Zagnieżdżanie typu Date w typie Event (308)
  • Nieeksportowane pola nie są promowane (309)
  • Eksportowane metody są promowane w taki sam sposób jak pola (310)
  • Hermetyzowanie pola Title z typu Event (312)
  • Promowane metody są dostępne w taki sam sposób jak metody typu zewnętrznego (313)
  • Pakiet calendar jest gotowy! (314)
  • Twój przybornik do Go (316)

ROZDZIAŁ 11. Co potrafisz zrobić? Interfejsy

  • Dwa różne typy mające te same metody (322)
  • Parametr metody, który przyjmuje wartości tylko jednego typu (323)
  • Interfejsy (325)
  • Definiowanie typu implementującego interfejs (326)
  • Typy konkretne i typy interfejsowe (327)
  • Przypisz wartość dowolnego typu implementującego interfejs (328)
  • Wywoływać można tylko metody zdefiniowane w interfejsie (329)
  • Poprawianie funkcji playList z użyciem interfejsu (331)
  • Asercje typów (334)
  • Nieudane asercje typów (336)
  • Unikanie paniki po niepowodzeniu asercji (337)
  • Testowanie typów TapePlayer i TapeRecorder z użyciem asercji typów (338)
  • Interfejs error (340)
  • Interfejs Stringer (342)
  • Pusty interfejs (344)
  • Twój przybornik do Go (347)

ROZDZIAŁ 12. Znów stań na nogi. Przywracanie stanu po awarii

  • Jeszcze o wczytywaniu liczb z pliku (350)
  • Błędy powodują, że plik nie zostanie zamknięty (352)
  • Odraczanie wywołań funkcji (353)
  • Przywracanie stanu po błędach z użyciem odroczonych wywołań funkcji (354)
  • Używanie odroczonych wywołań do gwarantowania zamknięcia plików (355)
  • Wyświetlanie plików z katalogu (358)
  • Wyświetlanie plików z podkatalogów (bardziej skomplikowane) (359)
  • Wywołania funkcji rekurencyjnych (360)
  • Rekurencyjne wyświetlanie zawartości katalogu (362)
  • Obsługa błędów w funkcji rekurencyjnej (364)
  • Uruchamianie procedury paniki (365)
  • Ślad stosu (366)
  • Odroczone wywołania ukończone przed awarią (366)
  • Stosowanie funkcji panic w funkcji scanDirectory (367)
  • Kiedy wywoływać panikę? (368)
  • Funkcja recover (370)
  • Funkcja recover zwraca wartość z wywołania panic (371)
  • Przywracanie stanu po wywołaniu funkcji panic w funkcji scanDirectory (373)
  • Ponowne wywołanie funkcji panic (374)
  • Twój przybornik do Go (376)

ROZDZIAŁ 13. Udostępnianie kodu. Wątki goroutine i kanały

  • Pobieranie stron internetowych (380)
  • Wielozadaniowość (382)
  • Współbieżność z użyciem wątków goroutine (383)
  • Używanie wątków goroutine (384)
  • Używanie wątków goroutine w funkcji responseSize (386)
  • Brak bezpośredniej kontroli nad wykonywaniem wątków goroutine (388)
  • Instrukcji go nie można używać razem ze zwracaniem wartości (389)
  • Wysyłanie i przyjmowanie wartości z użyciem kanałów (391)
  • Synchronizowanie wątków goroutine za pomocą kanałów (392)
  • Obserwowanie synchronizacji wątków goroutine (393)
  • Zastosowanie kanałów do poprawienia programu zwracającego wielkość stron (396)
  • Modyfikowanie kanału, aby przesyłał strukturę (398)
  • Twój przybornik do Go (399)

ROZDZIAŁ 14. Kontrola jakości kodu. Testy zautomatyzowane

  • Testy zautomatyzowane wykrywają błędy, zanim zrobi to ktoś inny (402)
  • Funkcja, dla której należało przygotować testy zautomatyzowane (403)
  • Spowodowaliśmy błąd (405)
  • Pisanie testów (406)
  • Uruchamianie testów za pomocą polecenia go test (407)
  • Testowanie zwracanych wartości (408)
  • Tworzenie szczegółowych komunikatów o niepowodzeniu testów za pomocą funkcji Errorf (410)
  • Funkcje pomocnicze w testach (411)
  • Sprawianie, by testy kończyły się powodzeniem (412)
  • Programowanie sterowane testami (413)
  • Następny błąd do naprawienia (414)
  • Uruchamianie określonego zbioru testów (417)
  • Testy sterowane tabelami (418)
  • Stosowanie testów do poprawiania kodu powodującego panikę (420)
  • Twój przybornik do Go (422)

ROZDZIAŁ 15. Reagowanie na żądania. Aplikacje internetowe

  • Pisanie aplikacji internetowych w języku Go (426)
  • Przeglądarki, żądania, serwery i odpowiedzi (427)
  • Prosta aplikacja internetowa (428)
  • Twój komputer rozmawia sam ze sobą (429)
  • Omówienie prostej aplikacji internetowej (430)
  • Ścieżki do zasobów (432)
  • Reagowanie w inny sposób na różne ścieżki do zasobów (433)
  • Funkcje pierwszoklasowe (435)
  • Przekazywanie funkcji do innych funkcji (436)
  • Funkcje jako typy (436)
  • Co dalej? (440)
  • Twój przybornik do Go (441)

ROZDZIAŁ 16. Stosowanie szablonów. Szablony HTML

  • Księga gości (446)
  • Funkcje do obsługi żądań i sprawdzanie błędów (447)
  • Tworzenie katalogu projektu i wypróbowywanie aplikacji (448)
  • Tworzenie listy wpisów w HTML-u (449)
  • Zwracanie stron HTML w aplikacji (450)
  • Pakiet text/template (451)
  • Stosowanie interfejsu io.Writer razem z metodą Execute szablonu (452)
  • Typy ResponseWriter i os.Stdout implementują interfejs io.Writer (453)
  • Wstawianie danych do szablonów z użyciem akcji (454)
  • Tworzenie opcjonalnych części szablonu za pomocą akcji if (455)
  • Powtarzanie sekcji szablonu za pomocą akcji range (456)
  • Wstawianie pól struktury do szablonu za pomocą akcji (457)
  • Wczytywanie wycinka z wpisami z pliku (458)
  • Struktura do przechowywania wpisów i ich liczby (460)
  • Modyfikowanie szablonu w celu umieszczenia w nim wpisów (461)
  • Umożliwianie użytkownikom dodawania danych za pomocą formularzy HTML-owych (464)
  • Żądania przesłania formularza (466)
  • Ścieżki i metody HTTP do przesyłania formularzy (467)
  • Pobieranie z żądania wartości pól formularza (468)
  • Zapisywanie danych z formularza (470)
  • Przekierowania HTTP (472)
  • Kompletny kod aplikacji (474)
  • Twój przybornik do Go (477)

DODATEK A. Zrozumieć funkcję os.OpenFile. Otwieranie plików

  • Zrozumieć funkcję os.OpenFile (482)
  • Przekazywanie do funkcji os.OpenFile stałych reprezentujących opcje (483)
  • Notacja dwójkowa (485)
  • Operatory bitowe (485)
  • Bitowy operator I (486)
  • Bitowy operator LUB (487)
  • Stosowanie bitowego operatora LUB dla stałych z pakietu os (488)
  • Stosowanie bitowego operatora LUB do poprawienia opcji funkcji os.OpenFile (489)
  • Uniksowe uprawnienia do plików (490)
  • Reprezentowanie uprawnień za pomocą typu os.FileMode (491)
  • Notacja ósemkowa (492)
  • Przekształcanie wartości ósemkowych na wartości typu FileMode (493)
  • Objaśnienie wywołań funkcji os.OpenFile (494)

DODATEK B. Sześć kwestii, które nie zostały opisane. Pozostałości

  • Numer 1. Inicjalizacja w instrukcji if (496)
  • Numer 2. Instrukcja switch (498)
  • Numer 3. Inne typy proste (499)
  • Numer 4. Jeszcze o runach (499)
  • Numer 5. Kanały buforowane (503)
  • Numer 6. Dalsza lektura (506)
Autor

ISBN

978-83-283-6152-2

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „GO RUSZ GŁOWĄ!”

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *