TS-Datentyp: Von C ++ / Java / Python zu TS, um Tupel zu betrachten - die Vor- und Nachteile von Tupeln

In einer stark typisierten Sprache wie C ++ und Java können das häufig verwendete Array, List und Set nur ein Typ in der Sammlung sein (Sie können Folgendes überprüfen: " Über die Java-Datenstrukturanalyse der zugrunde liegenden Implementierungs- und Anwendungsüberlegungen sprechen ).

int data [] = new int [3] 
List <String> person = new ArrayList <> (); 
Setze <Integer> test = new TreeSet <> ();

Wenn wir eine Sammlung mit fester Größe verschiedener Wertetypen benötigen, müssen wir Tupel verwenden

Einführung in C ++ - Tupel

Tuple ist ein leistungsstarker Container , der das Speichern mehrerer verschiedener Datentypen ermöglicht und eine Verallgemeinerung von Paaren darstellt. Es kann auch als allgemeine Struktur verwendet werden, ohne dass eine Struktur erstellt und die Eigenschaften der Struktur ermittelt werden müssen. In einigen Fällen kann es die Struktur ersetzen, um das Programm präziser und intuitiver zu gestalten. Theoretisch kann std :: tuple eine unendliche Anzahl von Elementvariablen eines beliebigen Typs haben, und std :: pair kann nur 2 Mitglieder sein. Wenn Sie also 3 oder mehr Daten speichern müssen, müssen Sie Tupel-Tupel (Tupel (Element) verwenden Gruppe) wurde in c ++ 11 zitiert.).

std :: tuple <T1, T2, TN> t1; // Erstellen Sie ein leeres Tupelobjekt (unter Verwendung der Standardkonstruktion). Die entsprechenden Elemente sind T1- und T2 ... Tn-Typen, initialisiert durch den Wert 
std :: tuple <T1 , T2, TN> t2 (v1, v2, ... TN); // Ein Tupelobjekt erstellen, dessen zwei Elemente vom Typ T1 und T2 ... Tn sind; Um den Wert des Elements zu erhalten, müssen Sie das Tupelelement übergeben get <Ith> (obj), um es zu erhalten (Ith bezieht sich auf das Abrufen der Anzahl der Elemente im Tupel, siehe die spezifischen Beispiele unten). 
std :: tuple <T1 &> t3 (ref &); // Der Elementtyp des Tupels kann eine Referenz sein. 
std :: make_tuple (v1, v2); // Wie ein Paar kann auch ein Tupelobjekt über make_tuple erstellt werden

Die Objekte im Tupel können von einem anderen Typ sein und eine beliebige Länge haben

Java Tuple

Tupel, bei dem es sich um ein einzelnes Objekt handelt, in dem eine Reihe von Objekten direkt verpackt und gespeichert wird. Mit diesem Containerobjekt können die darin enthaltenen Elemente gelesen werden. Es dürfen jedoch keine neuen Objekte darin gespeichert werden. (Dieses Konzept wird auch als Datenübertragung bezeichnet Objekt oder Bote)

Python-Tupel

Pythons kollektive Datentypliste und Tupel sind sehr ähnlich, der Unterschied ist:

Tupel wird durch Klammern () definiert, und der Elementinhalt kann nach der Definition nicht bearbeitet werden (dh unveränderlich), während die Liste durch eckige Klammern [] definiert wird und der Elementinhalt bearbeitet werden kann (dh geändert werden kann). Zu den Bearbeitungsaktionen gehört das Löschen von pop () und das Anhängen an das Ende append (), insert () einfügen.

list1 = ['cong', 'rick', 'long'] // list 
tupe1 = ('Jan', 'Feb', 'Mar') // Tupel, Tupelelemente können nicht geändert, nicht hinzugefügt oder gelöscht werden . 
tupeformList = tuple (list1)

Die Art der Tupel in Python ähnelt Java

Tupel können wie Listen zur Datenspeicherung verwendet werden und mehrere Daten enthalten.

Der Unterschied zur Liste besteht jedoch darin, dass in der Liste nur derselbe Datentyp gespeichert werden kann, das Tupel jedoch unterschiedlich ist. Es kann verschiedene Datentypen wie das Speichern von int, string, list usw. gleichzeitig speichern und je nach Bedarf unbegrenzt erweitert werden.

TypeScript-Tupel

TypeScript fügt JavaScript eine starke Typisierung hinzu, wodurch JavaScript Java ähnlicher wird, wie z.

let sites: string [] ----> String args []

JavaScript-Arrays können jeden Typ speichern. Aber TypeScript wird zum Tupel. Wenn Sie das Konzept der Tupel nicht verstehen, können Sie es trotzdem verwenden. Geben Sie einfach den Typ an.

let myTuple: [number, string, boolean] = [1, 'Poplar', true];

Bei Elementen außerhalb der Grenzen ist der Typ auf den Vereinigungstyp jedes Typs im Tupel beschränkt

TypeScript-Tupel werden von funktionalen Programmiersprachen (wie F #) - einer Familie - geerbt.

Referenzartikel:

Grundlegende Verwendung von C ++ - Tupel (Zusammenfassung)   https://blog.csdn.net/sevenjoin/java/article/details/88420885

Verwenden Sie Tupel in C ++  https://blog.csdn.net/xiahn1a/article/details/41670203

Java元组Tuple介绍与使用 https://blog.csdn.net/u013412772/article/details/74298257



转载本站文章《TS数据类型:从C++/Java/Python到TS看元组tuple—元组的来龙去脉》,
请注明出处:https://www.zhoulujun.cn/html/webfront/ECMAScript/typescript/2020_0413_8380.html


Ich denke du magst

Origin blog.51cto.com/zhoulujun/2535581
Empfohlen
Rangfolge