Funktionsglossar — alle std-Funktionen alphabetisch

Jede öffentliche Funktion der Standardbibliothek, nach Namen sortiert, mit Signatur und der Unit, in der sie steht. 7128 Funktionen aus 433 Units — der Bestand von std, ohne Umweg über die Unit-Seiten.

Wofür das gut ist: Man hat einen Funktionsnamen aus fremdem Code, einer Fehlermeldung oder einem Beispiel und will wissen, wo er herkommt und wie er aufgerufen wird. Die Unit-Seiten beantworten die umgekehrte Frage — was kann diese Unit — und stehen dahinter verlinkt.

Unit-Verzeichnis · Sprachsyntax · Glossar von vorn


Nach Anfangsbuchstaben

Buchstabe Funktionen
Sonstige 43
A 632
B 283
C 335
D 416
E 378
F 223
G 466
H 160
I 276
J 22
K 86
L 223
M 361
N 99
O 43
P 804
Q 300
R 322
S 822
T 230
U 204
V 219
W 93
X 25
Y 2
Z 79

# · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z


Builtins — die Namen, die hier nicht stehen

Ein Teil der meistbenutzten Namen taucht im Glossar nicht auf, weil sie keine Unit-Funktionen sind, sondern Builtins: der Übersetzer erzeugt den Code direkt, es gibt keinen pub fn dazu und keinen Import. Wer PrintLn im Glossar sucht, findet nichts — deshalb steht die Liste hier:

  • EPrint
  • EPrintLn
  • EPrintStr
  • EPrintStrLn
  • Exit
  • fCeil
  • fFloor
  • FileReadAll
  • fRound
  • GetArg
  • GetArgC
  • GetArgV
  • GetEnvBlock
  • IntToStr
  • panic
  • Printf
  • PrintFloat
  • PrintInt
  • PrintLn
  • PrintStr
  • Random
  • RandomSeed
  • StrConcat
  • StrCopy
  • StrEq
  • StrEquals
  • StrFromInt
  • StrLen
  • StrLength
  • StrStartsWith
  • StrSub

Die vollständige Belegung führt der Compiler in src/backend/_builtin_ids.md; die Liste oben ist der Teil, den man beim Programmieren tatsächlich schreibt. Nicht aufgeführt sind die sys_*-Builtins (direkte Syscall-Abbildungen, vor allem für LyxOS) und die Speicherbarrieren.

 
Fünf Namen gibt es doppelt — als Builtin und als Unit-Funktion: Print und FloatToStr (auch in std.io), StrFind und StrTrim (auch in std.string), FileSize (auch in std.fs und std.fs_ext). Ohne Import greift das Builtin; mit Import entscheidet der Übersetzer zugunsten der Unit-Funktion. Bei diesen fünf lohnt der Blick auf die Unit-Seite, weil die Signaturen nicht zwingend gleich sind.

Genau diese Doppelung hat außerdem eine Lücke in der Stelligkeitsprüfung: ein Name, den es als Builtin und als pub fn gibt, entkommt beiden Prüfungen — PrintLn("a", "b") wird übersetzt, obwohl PrintLn ein Argument nimmt (#2012, offen).

Was in diesem Glossar steht — und was nicht

  • Aufgenommen ist, was mit pub fn aus einer Unit herausgeführt wird. Alles Interne fehlt, und das mit Absicht: was nicht pub ist, darf sich ändern.
  • Die Signatur steht so da, wie sie im Quelltext steht. Bei mehrzeiligen Signaturen sind die Zeilen zusammengezogen.
  • Ein Name kann mehrfach vorkommen. SqrtF64 etwa steht in std.math und noch einmal in std.ml; IsValid gibt es in vier Units. Beim Import entscheidet, welche Unit eingebunden ist.
  • Die Unit-Spalte verweist auf die Doku-Seite der Unit, sofern es eine gibt. Für die Untermodule von std.cloud.digitalocean und die Unicode-Datentabellen führt der Verweis auf keine eigene Seite — die stehen als reiner Text da.
  • Beschreibungen stehen bewusst nicht hier, sondern auf den Unit-Seiten. Ein Glossar mit 7146 Kurztexten wäre weder pflegbar noch lesbar; die Seite beantwortet die Frage wo, nicht die Frage wie.
 
Erzeugt aus dem Quelltext, nicht von Hand gepflegt. Grundlage ist der Bestand aller pub fn in std. Fehlt eine Funktion hier, fehlt sie auch dort — oder sie ist nicht öffentlich.

Die Buchstabenseiten entstehen aus glossar-bauen.py im Doku-Projekt. Kommen neue Funktionen oder Units hinzu, wird das Glossar im selben Arbeitsgang mitgezogen — ein Glossar, das dem Bestand hinterherhinkt, ist schlechter als keines, weil es Vollständigkeit behauptet.