Bottom Geben Sie Swift ein

8

Ich frage mich, ob es unteren Typ in der Swift-Sprache gibt.

Um Unklarheiten im Vorfeld auszuschließen, Einheitentyp ist eine andere Art als der untere Typ, wie wir es als% co_de haben % oder Void in swift. Auch () ist oberster Typ .

Was ich am überraschendsten gefunden habe, ist Any Attribut in Form von @noreturn , da wir meist diese Funktion übergeben können, um am meisten gegebener beliebiger Typ.

Aber das ist natürlich unvollständig und daher ein schlechter Ersatz für einen echten Bottom-Typ wie zB fatalError() in Scala, Nothing in Haskell oder sogar undefined in Java.

Also, gibt es einen Bottom-Typ in der Swift-Sprache?

    
Daniel Shin 08.12.2015, 08:10
quelle

1 Antwort

2

Es gibt keinen Bottom Type in swift, aber wir können sein allgemeines Verhalten durch wenige Hacks mit @noreturn Attribut und Generics verspotten, wie in dieses Gespräch .

%Vor%

Dann können wir es verwenden, um noch implementierte Teile unseres Codes zu markieren, um Compiler-Fehler zu übergeben:

%Vor%

Oder um einige Invarianzen in unserem Code zu beweisen:

%Vor%     
Daniel Shin 09.12.2015 12:54
quelle

Tags und Links