D/Biblioteka standardowa

< 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

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.