Looking for erlang Keywords? Try Ask4Keywords

Erlang LanguageIolisten


Einführung

Während eine Erlang-Zeichenfolge eine Liste von Ganzzahlen ist, ist eine "Iolist" eine Liste, deren Elemente entweder Ganzzahlen, Binärdateien oder andere Iolisten sind, z. B. ["foo", $b, $a, $r, <<"baz">>] . Dieser Iolist repräsentiert die Zeichenfolge "foobarbaz" .

Während Sie eine iolist mit iolist_to_binary/1 in eine Binärdatei konvertieren können, ist dies häufig nicht erforderlich, da Erlang-Bibliotheksfunktionen wie file:write_file/2 und gen_tcp:send/2 Iolisten sowie Strings und Binaries akzeptieren.

Syntax

  • -Typ iolist () :: maybe_improper_list (byte () | binary () | iolist (), binary () | []).

Bemerkungen

Was ist ein Iolist?

Es ist irgendein binäres. Oder eine Liste, die ganze Zahlen zwischen 0 und 255 enthält. Oder eine beliebig verschachtelte Liste, die eines dieser beiden Dinge enthält.

Originaler Artikel

Verwenden Sie tief verschachtelte Listen von Ganzzahlen und Binärdateien, um E / A-Daten darzustellen, um beim Verketten von Zeichenfolgen oder Binärdateien das Kopieren zu vermeiden.

Sie sind effizient, selbst wenn große Datenmengen kombiniert werden. Beispielsweise würde das Kombinieren von zwei 50-Kilobyte-Binärdateien unter Verwendung der Binärsyntax <<B1/binary, B2/binary>> normalerweise erfordern, beide in eine neue 100-KB-Binärzuordnung zuzuweisen. Bei Verwendung von IO-Listen [B1, B2] nur die Liste zugeordnet, in diesem Fall drei Wörter. Eine Liste verwendet ein Wort und ein anderes Wort pro Element finden Sie hier für weitere Informationen.

Die Verwendung des ++ Operators hätte eine ganze neue Liste erstellt, anstatt nur eine neue Liste mit zwei Elementen. Das erneute Erstellen von Listen zum Hinzufügen von Elementen am Ende kann teuer werden, wenn die Liste lang ist.

In Fällen, in denen die binären Daten klein sind, kann das Zuordnen von E / A-Listen größer sein als das Anhängen der Binärdateien. Wenn die binären Daten entweder klein oder groß sein können, ist es oft besser, die konsistenten Kosten von E / A-Listen zu akzeptieren.

Beachten Sie, dass das Anhängen von Binärdateien wie hier beschrieben optimiert wird. Kurz gesagt, einem Binärcode kann zusätzlicher, verborgener Speicherplatz zugewiesen werden. Dies wird gefüllt, wenn eine andere Binärdatei angehängt wird, die in den freien Speicherplatz passt. Das bedeutet, dass nicht jedes binäre Anfügen eine vollständige Kopie beider Binärdateien verursacht.

Iolisten Verwandte Beispiele