Wat is het verschil tussen Int en Int32 in Swift?

In Core Datakun je Int16, Int32, Int64opslaan, maar het is anders dan Int. Wat is de reden van hun bestaan, hoe gebruik je ze?


Antwoord 1, autoriteit 100%

Volgens de Swift-documentatie

Int

In de meeste gevallen hoeft u geen specifieke grootte van een geheel getal te kiezen om in uw code te gebruiken. Swift biedt een extra integer-type, Int, dat dezelfde grootte heeft als de oorspronkelijke woordgrootte van het huidige platform:

Op een 32-bits platform is Int even groot als Int32.

Op een 64-bits platform is Int even groot als Int64.

Tenzij je met een specifieke grootte van integer moet werken, gebruik dan altijd Int voor integer-waarden in je code. Dit bevordert de consistentie en interoperabiliteit van de code. Zelfs op 32-bits platforms kan Int elke waarde tussen -2.147.483.648 en 2.147.483.647 opslaan en is het groot genoeg voor veel gehele reeksen.


Antwoord 2, autoriteit 6%

Swift’s Intis een wrapper omdat het de dezelfde grootteals een platformcapaciteit (Int32op 32-bits platform en Int64op 64-bits platform).

Als programmeur moet je geen platformafhankelijke Int (bijv. Int32, Int64) declareren, tenzij je deze echt nodig hebt. Als u bijvoorbeeld op een 32-bits platform werkt met getallen die niet kunnen worden weergegeven met 4 bytes, kunt u Int64declareren in plaats van Int.

  • Int32: 4 bytes: van −2147483648 tot +2147483647
  • Int64: 8 bytes: van −9223372036854775808 tot +9223372036854775807

Antwoord 3, autoriteit 5%

Het nummer dat achter de “Int” wordt geplaatst, is een verwijzing naar het aantal bits dat wordt gebruikt. Wanneer je een int gebruikt voor iets dat heel kort of bijna onnodig is, zoals een lopende telling van het aantal objecten in een lijst die een specifieke parameter volgen, gebruik ik normaal gesproken een UInt8, wat een geheel getal is met een maximale waarde van 256 (2 ^8), en een minimumwaarde van 0, omdat deze niet ondertekend is (dit is het verschil tussen UInt8 en Int8). Als het is ondertekend (of geen “U” voor de variabele heeft), kan het negatief zijn. Hetzelfde geldt voor Int16, Int32 en Int64. De bonus voor het gebruik van een kleiner Int-type is niet erg groot, dus je hoeft deze niet echt te gebruiken als je dat niet wilt.


Antwoord 4, autoriteit 4%

Er zijn geen prestatiebesparingen als u werkt op een laptop of iOS-apparaat met een 32-bits of 64-bits processor. Gebruik gewoon Int. De CPU gebruikt niet alleen 8 bits als je Int8 gebruikt, de CPU gebruikt de volledige bitbreedte, ongeacht wat je gebruikt, omdat de hardware al in de chip zit…

Als je nu een 8-bits CPU hebt, zou de compiler voor het gebruik van Int32 een aantal backflips en goocheltrucs moeten doen om de 32-bits Int te laten werken

Other episodes