What is the difference between Int and Int32 in Swift? What is the difference between Int and Int32 in Swift? ios ios

What is the difference between Int and Int32 in Swift?


According to the Swift Documentation

Int

In most cases, you don’t need to pick a specific size of integer to use in your code. Swift provides an additional integer type, Int, which has the same size as the current platform’s native word size:

On a 32-bit platform, Int is the same size as Int32.

On a 64-bit platform, Int is the same size as Int64.

Unless you need to work with a specific size of integer, always use Int for integer values in your code. This aids code consistency and interoperability. Even on 32-bit platforms, Int can store any value between -2,147,483,648 and 2,147,483,647, and is large enough for many integer ranges.


Swift's Int is a wrapper because it has the same size as a platform capacity (Int32 on 32-bit platform and Int64 on 64-bit platform).

As a programmer, you should not declare a platform dependent Int (e.g. Int32, Int64) unless you really need it. For example, when you are working on 32-bit platform with numbers that cannot be represented using 4 bytes, then you can declare Int64 instead of Int.

  • Int32: 4 bytes: from −2147483648 to +2147483647
  • Int64: 8 bytes: from −9223372036854775808 to +9223372036854775807


The number placed after the "Int" is a reference to how many bits it uses. When you are using an int for something really short or almost unnecessary, like a running count of how many objects in a list that follow a specific parameter, I normally use an UInt8, which is an integer that has a maximum value of 256 (2^8), and a minimum value of 0, because it is unsigned (this is the difference between UInt8 and Int8). If it is signed, (or doesn't have a "U" prefixing the variable) then it can be negative. The same is true for Int16, Int32, and Int64. The bonus for using a smaller sized Int type is not very large, so you don't really need to use these if you don't want to.