2017-05-16 2 views
1

Vom documentation:Warum Array/Dict/Optional sind keine zusammengesetzten Typen in Swift?

Neben genannten Typen benutzerdefinierte definiert die Swift-Standardbibliothek viele häufig genannte Typen verwendet, einschließlich denen, die Arrays, Wörterbücher und optionale Werte darstellen.

[...]

Es gibt zwei Verbindungstypen: Funktionstypen und Tupel Typen.

Nun ... Es scheint klar zu sein, dass Wörterbücher, Arrays und Optionals benannte Typen und keine zusammengesetzten Typen sind.

Ich verstehe nicht, warum sie nicht zusammengesetzte Typen sind, während Tupel und Funktionstypen sind. Denn aus meiner Sicht sind alle diese Typen Host für andere Typen.

So zwei Lösungen:

  • Es ist etwas über Verbindungstypen Ich verstehe nicht
  • Es ist etwas über Tupel und Funktionstypen, die ich nicht verstehe

Antwort

0

Die Dokumentation eindeutig fest diese zusammengesetzten Typen sind diejenigen, die keinen Namen haben. Ein Tupel-Typ und Funktionstypen haben keine Namen, dh, wenn diese Typen in Funktionssignatur oder variable Angabe Sie nicht let a : Tuple oder let f : function sagen, stattdessen müssen Sie ihre eigene spezifische Notation verwenden, um die Typen angeben - let a: (Int, Int) oder let f: (Int, Int) -> Int

Zusammengesetzte Typen haben nichts mit "Host für andere Typen" zu tun.

+0

"Ein Verbindungstyp kann benannte Typen und andere Verbindungstypen enthalten." Auch Ihre Unterscheidung über Namen ist trübe - Funktionen und Tupel haben Namen, die als Typaliases fungieren. Ich denke nicht, dass dies die Frage ausreichend beantwortet. – sdasdadas

+0

@sdasdadas Jeder Typ hat 1) Seine Definition und 2) Optional einen Namen. Ein Tupel hat keinen Namen und Sie müssen seine Definition und dasselbe für die Funktion verwenden. Typ-Aliase unterscheiden sich von der Idee des Namens eines Typs. – Ankur

+1

Richtig, das ist gut für eine Unterscheidung. Aber das OP fragt, warum das so ist. – sdasdadas

Verwandte Themen