Freigeben über


Äquivalenz für Singleton-Tupel

Um Mehrdeutigkeiten zwischen Tupeln und Klammern zu vermeiden, die Unterausdrücke gruppieren, wird ein Tupel mit einem einzelnen Element als äquivalent zum enthaltenen Element betrachtet (einschließlich des Typs). So werden beispielsweise die Typen Int, (Int) und ((Int)) als identisch behandelt. Gleiches gilt für die Werte 5, (5) und (((5))) sowie für (5, (6)) und (5, 6). Diese Äquivalenz gilt für alle Zwecke, einschließlich der Zuweisung. Da es keine dynamische Verteilung oder Reflektion in Q# gibt und alle Typen in Q# zur Kompilierzeit auflösbar sind, kann die Äquivalenz von Singletontupeln während der Kompilierung problemlos implementiert werden.