Język Go. Poznaj i programuj - ebook
Język Go. Poznaj i programuj - ebook
Język Go jest nazywany „językiem C XXI wieku”. Podobnie jak C, umożliwia kompilowanie programów do wydajnego kodu maszynowego, który w natywny sposób współpracuje z poszczególnymi systemami operacyjnymi. Go jest elastycznym narzędziem pozwalającym osiągać maksymalny efekt przy minimalnych środkach. Jest bardzo wszechstronny — bardzo dobrze nadaje się do budowania infrastruktury takiej jak serwery sieciowe, do tworzenia narzędzi dla programistów, ale jest też znakomitym językiem do programowania grafiki, aplikacji mobilnych i uczenia maszynowego.
Niniejsza książka jest skierowana do osób, które chcą jak najszybciej rozpocząć tworzenie wydajnego oprogramowania w Go. Autorzy przejrzyście wyjaśnili podstawy tego języka i zasady nim rządzące, a swój wykład uzupełnili setkami interesujących i praktycznych przykładów dobrze napisanego kodu Go. W ten sposób Czytelnik dobrze pozna wszystkie aspekty tego języka, jego najistotniejsze pakiety oraz szeroki zakres zastosowań.
W książce omówiono:
- podstawowe koncepcje Go, jego najważniejsze konstrukcje i elementy strukturalne programu;
- proste i złożone typy danych, funkcje, metody i interfejsy;
- zasady współbieżności implementowanej w Go;
- kompilacja i formatowanie programu w Go;
- korzystanie z pakietów oraz z bibliotek testowania;
- zagadnienia zaawansowane: korzystanie z refleksji i programowanie niskiego poziomu.
Poznaj język Go — doskonałe narzędzie dla profesjonalisty!
Spis treści
Przedmowa (9)
- Pochodzenie języka Go (10)
- Projekt Go (11)
- Struktura książki (13)
- Gdzie można znaleźć więcej informacji (14)
- Podziękowania (15)
Rozdział 1. Przewodnik (17)
- 1.1. Witaj, świecie (17)
- 1.2. Argumenty wiersza poleceń (19)
- 1.3. Wyszukiwanie zduplikowanych linii (23)
- 1.4. Animowane GIF-y (28)
- 1.5. Pobieranie zawartości adresu URL (30)
- 1.6. Pobieranie zawartości kilku adresów URL równolegle (32)
- 1.7. Serwer WWW (33)
- 1.8. Kilka pominiętych kwestii (37)
Rozdział 2. Struktura programu (41)
- 2.1. Nazwy (41)
- 2.2. Deklaracje (42)
- 2.3. Zmienne (43)
- 2.4. Przypisania (50)
- 2.5. Deklaracje typów (52)
- 2.6. Pakiety i pliki (54)
- 2.7. Zakres (58)
Rozdział 3. Podstawowe typy danych (63)
- 3.1. Liczby całkowite (63)
- 3.2. Liczby zmiennoprzecinkowe (68)
- 3.3. Liczby zespolone (72)
- 3.4. Wartości logiczne (75)
- 3.5. Łańcuchy znaków (75)
- 3.6. Stałe (86)
Rozdział 4. Typy złożone (91)
- 4.1. Tablice (91)
- 4.2. Wycinki (94)
- 4.3. Mapy (102)
- 4.4. Struktury (108)
- 4.5. JSON (114)
- 4.6. Szablony tekstowe i HTML (120)
Rozdział 5. Funkcje (125)
- 5.1. Deklaracje funkcji (125)
- 5.2. Rekurencja (127)
- 5.3. Zwracanie wielu wartości (130)
- 5.4. Błędy (132)
- 5.5. Wartości funkcji (137)
- 5.6. Funkcje anonimowe (139)
- 5.7. Funkcje o zmiennej liczbie argumentów (146)
- 5.8. Odroczone wywołania funkcji (147)
- 5.9. Procedura panic (152)
- 5.10. Odzyskiwanie sprawności (154)
Rozdział 6. Metody (157)
- 6.1. Deklaracje metod (157)
- 6.2. Metody z odbiornikiem wskaźnikowym (159)
- 6.3. Komponowanie typów poprzez osadzanie struktur (162)
- 6.4. Wartości i wyrażenia metod (165)
- 6.5. Przykład: typ wektora bitowego (166)
- 6.6. Hermetyzacja (169)
Rozdział 7. Interfejsy (173)
- 7.1. Interfejsy jako kontrakty (173)
- 7.2. Typy interfejsowe (176)
- 7.3. Spełnianie warunków interfejsu (177)
- 7.4. Parsowanie flag za pomocą interfejsu flag.Value (180)
- 7.5. Wartości interfejsów (182)
- 7.6. Sortowanie za pomocą interfejsu sort.Interface (187)
- 7.7. Interfejs http.Handler (191)
- 7.8. Interfejs error (196)
- 7.9. Przykład: ewaluator wyrażeń (197)
- 7.10. Asercje typów (203)
- 7.11. Rozróżnianie błędów za pomocą asercji typów (205)
- 7.12. Kwerendowanie zachowań za pomocą interfejsowych asercji typów (207)
- 7.13. Przełączniki typów (209)
- 7.14. Przykład: dekodowanie XML oparte na tokenach (211)
- 7.15. Kilka porad (214)
Rozdział 8. Funkcje goroutine i kanały (215)
- 8.1. Funkcje goroutine (215)
- 8.2. Przykład: współbieżny serwer zegara (217)
- 8.3. Przykład: współbieżny serwer echo (220)
- 8.4. Kanały (222)
- 8.5. Zapętlenie równoległe (231)
- 8.6. Przykład: współbieżny robot internetowy (235)
- 8.7. Multipleksowanie za pomocą instrukcji select (239)
- 8.8. Przykład: współbieżna trawersacja katalogów (242)
- 8.9. Anulowanie (246)
- 8.10. Przykład: serwer czatu (248)
Rozdział 9. Współbieżność ze współdzieleniem zmiennych (253)
- 9.1. Sytuacje wyścigu (253)
- 9.2. Wzajemne wykluczanie: sync.mutex (258)
- 9.3. Muteksy odczytu/zapisu: sync.RWMutex (261)
- 9.4. Synchronizacja pamięci (262)
- 9.5. Leniwe inicjowanie: sync.Once (264)
- 9.6. Detektor wyścigów (266)
- 9.7. Przykład: współbieżna nieblokująca pamięć podręczna (267)
- 9.8. Funkcje goroutine i wątki (274)
Rozdział 10. Pakiety i narzędzie go (277)
- 10.1. Wprowadzenie (277)
- 10.2. Ścieżki importów (278)
- 10.3. Deklaracja package (279)
- 10.4. Deklaracje import (279)
- 10.5. Puste importy (280)
- 10.6. Pakiety i nazewnictwo (282)
- 10.7. Narzędzie go (284)
Rozdział 11. Testowanie (295)
- 11.1. Narzędzie go test (296)
- 11.2. Funkcje testujące (296)
- 11.3. Pokrycie (310)
- 11.4. Funkcje benchmarkujące (313)
- 11.5. Profilowanie (315)
- 11.6. Funkcje przykładów (318)
Rozdział 12. Refleksja (321)
- 12.1. Dlaczego refleksja? (321)
- 12.2. reflect.Type i reflect.Value (322)
- 12.3. Display - rekurencyjny wyświetlacz wartości (324)
- 12.4. Przykład: kodowanie S-wyrażeń (329)
- 12.5. Ustawianie zmiennych za pomocą reflect.Value (332)
- 12.6. Przykład: dekodowanie S-wyrażeń (334)
- 12.7. Uzyskiwanie dostępu do znaczników pól struktury (337)
- 12.8. Wyświetlanie metod typu (340)
- 12.9. Słowo ostrzeżenia (341)
Rozdział 13. Programowanie niskiego poziomu (343)
- 13.1. Funkcje unsafe.Sizeof, Alignof i Offsetof (344)
- 13.2. Typ unsafe.Pointer (346)
- 13.3. Przykład: głęboka równoważność (348)
- 13.4. Wywoływanie kodu C za pomocą narzędzia cgo (351)
- 13.5. Kolejne słowo ostrzeżenia (355)
Skorowidz (356)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2468-8 |
Rozmiar pliku: | 4,5 MB |