D/Biblioteka standardowa
Wygląd
< D
Biblioteka standardowa
[edytuj]Filozofia
[edytuj]Filozofia biblioteki standardowej (Phobos) (tłumaczenie z oficjalnej strony):
- Niezależność od maszyny i systemu operacyjnego
Jest powszechnie akceptowane to że nieuzasadniona 'nie-przenosność' jest bezcelowa. To nie powinno być podważane, jednakże, dostęp do nietypowych funkcji systemu operacyjnego powinien być zapobiegiwany.
- Proste operacje powinny pozostać proste
Zwykłe i proste operacje, jak zapisywanie tablicy bajtów do pliku, powinny być proste do napisania. Nie widziałem nigdzie klasy/biblioteki która umożliwi łatwe stosowanie operacji we/wy na plikach
- Klasy powinny być niezależne od innych klas
- Żadnych bezcelowych łączników do funkcji bibliotek C lub funkcji API systemu op.
- Implementacje klas powinny używać DBC (programowanie kontraktowe)
- Używaj wyjątków dla obsługi błędów. Zobacz Obsługa błędów w D
Moduły
[edytuj]Uwaga!
|
Biblioteka ta składa się z następujących modułów (ważniejsze opisano):
- std.base64 - obsługa kodowania Base64 (używane m.in. w poczcie)
- std.bind
- std.bitarray - efektywna implementacja tablicy bitowych
- std.boxer
- std.compiler - informacje o używanym kompilatorze
- std.contracts
- std.conv - konwersja pomiędzy standardami kodowania znaków
- std.cover - dodatkowe funkcje wspomagające proces analizy pokrywania (ang. coverage)
- std.cpuid - rozpoznawanie procesora i rozszerzeń które posiada (MMX, SSE, 3dNow!, itp.)
- std.ctype
- std.date - obsługa czasu, jego wyświetlanie, konwersje pomiędzy formatami, strefami czasowymi
- std.demangle
- std.file - obsługa plików oraz katalogów
- std.format
- std.gc - wspomaganie procesu garbage collectora (odśmiecacza śmieci)
- std.getopt - moduł do łatwej obsługi argumentów lini poleceń
- std.intrinsic
- std.math - funkcje matematyczne (zarówno standardowe, jak i funkcje specjalne)
- std.md5 - obliczanie funkcji skrótu MD5
- std.metastrings
- std.mmfile - obsługa plików mapowanych do pamięci (mmap)
- std.openrj
- std.outbuffer
- std.outofmemory - obsługa wyjątków związanych z brakiem pamięci
- std.path
- std.process
- std.random - generator liczb pseudlosowych
- std.regexp - obsługa wyrażeń regularnych (wyszukiwanie, zamiana, itp.)
- std.signals
- std.socket - obsługa gniazd oraz połączeń sieciowych
- std.socketstream
- std.stdint
- std.stdio - obsługa standardowego wyjścia i wejścia
- std.cstream
- std.stream
- std.string - funkcje tekstowe (wyszukiwanie, zmianienie rozmiarów liter, itp.)
- std.system
- std.thread - obsługa wielowątkowości
- std.traits
- std.typetuple
- std.uni
- std.uri
- std.utf
- std.variant
- std.zip - obsługa plików skompresowanych algorytmem ZIP
- std.zlib - obsługa strumienie kompresowanych algorytmem zlib
- funkcje zaimportowane z C, ich opis można znelźć w dokumentacji biblioteki standardowej C lub standardach POSIX
- std.c.fenv
- std.c.locale
- std.c.math
- std.c.process
- std.c.stdarg
- std.c.stddef
- std.c.stdio
- std.c.stdlib
- std.c.string
- std.c.time
- std.c.wcharh
- moduły dostępne w środowisku Windows:
- std.windows.charset
- std.windows
- std.c.windows
- moduły dostępne w środowisku linux
- std.linux
- std.c.linux
W nowszych wersjach mogą pojawić się dodatkowe moduły w pakicie std.*, głównie te przeportowane z wersji 2.0 (tzw. backport), jeśli są użyteczne i nie wykorzystają cech specyficznych dla wersj 2.0).
Szczególnie oczekiwany jest backport modułów do obsługi kontenerów, algorytmów standardowych oraz algorytmów numerycznych w postaci templateów (tzw. D template library - dtl).
Importowanie
[edytuj]Moduły z powyższej listy i dokumentacji importuje się dokładnie tak jak w dotychczasowych przykładach, przyjmuje to z reguły jedną z następujących postaci:
import std.modul;
import std.pakiet.modul;
Więcej o modułach i pakietach – klik.