thndrkiss
thndrkiss

Reputation: 4595

How to find out the max value for Int in Swift

I want to understand how to access the "struct" type of Int. When I cmd-clicked Int it took me to this class, i want to find out what is the maximum value this can hold. Is there a way to pull from one of this properties ?. what is max and min in this structure ?

struct Int : SignedInteger {
    var value: Builtin.Word
    init()
    init(_ v: Builtin.Word)
    init(_ value: Int)
    static func convertFromIntegerLiteral(value: Int) -> Int
    typealias ArrayBoundType = Int
    func getArrayBoundValue() -> Int
    static var max: Int { get }
    static var min: Int { get }
}

Upvotes: 50

Views: 75534

Answers (4)

Shadros
Shadros

Reputation: 798

Try this in Swift 3:

let value = Int.max

Upvotes: 32

joakim
joakim

Reputation: 4061

You can access these as static properties as suggested in other answers.

I see in some comments people are wondering why you can't access them as instance variables.

This is like asking "what is the max value of 5?" and expecting a sensible answer.

One of the main uses for these variables is guarding against integer overflows.

Something along the lines of "if I add something to this integer that makes it bigger than Int.max i.e. it triggers an overflow " and act accordingly.

More on how Apple address the issue of integer overflows here.

Upvotes: 3

Artem Z.
Artem Z.

Reputation: 1243

You can access the minimum and maximum values of each integer type with its min and max properties:

let minValue = UInt8.min  // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max  // maxValue is equal to 255, and is of type UInt8

The values of these properties are of the appropriate-sized number type (such as UInt8 in the example above) and can therefore be used in expressions alongside other values of the same type.

from: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

Upvotes: 7

iPatel
iPatel

Reputation: 47099

“You can access the minimum and maximum values of each integer type with its min and max properties:

let minValue = UInt8.min  // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max  // maxValue is equal to 255, and is of type UInt8

The values of these properties are of the appropriate-sized number type (such as UInt8 in the example above) and can therefore be used in expressions alongside other values of the same type.”

Excerpt From: Apple Inc. “The Swift Programming Language.” iBooks. https://itun.es/in/jEUH0.

Upvotes: 79

Related Questions