2016-06-23 5 views
4

Warum ist nicht Array.count ein UInt anstelle von Int?Warum ist Array.count kein UInt?

Wie könnte Array.count jemals negativ sein?

+1

Verwandte: [Warum empfiehlt der Swift-Sprachführer die Verwendung von Int "auch wenn Werte bekanntlich nicht negativ sind"?] (Http://stackoverflow.com/questions/24180630/why-does-the- swift-language-suggest-using-int-gerade-wenn-werte sind bekannt) –

+0

Beispiel für eine einfache Falle, wenn Sie mit unsigned Ganzzahlen arbeiten: http://StackOverflow.com/questions/37928520/swift-unexpected -error-in-simple-if-Anweisung. –

Antwort

4

Von Apples Dokumentation über Swift Arten here:

HINWEIS

Verwenden UInt nur, wenn Sie benötigen speziell einen nicht signierten Integer-Typen mit der gleichen Größe wie die nativen Wortgröße der Plattform. Wenn dies nicht der Fall ist, wird Int bevorzugt, auch wenn bekannt ist, dass die zu speichernden Werte nicht negativ sind. Eine konsistente Verwendung von Int für ganzzahlige Werte unterstützt die Codeinteroperabilität, vermeidet die Notwendigkeit der Konvertierung zwischen verschiedenen Zahlentypen und entspricht der Integer-Typ-Inferenz, wie in Typ Sicherheit und Typinferenz beschrieben.