48

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 }
}
iPatel
  • 46,010
  • 16
  • 115
  • 137
thndrkiss
  • 4,515
  • 8
  • 57
  • 96

4 Answers4

77

“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.

iPatel
  • 46,010
  • 16
  • 115
  • 137
  • Thanks i got it, here is a query, why should it always be with the class name ? can't a instance, that is say "let intTemp : Int = 56;" can't i access intTemp.min or intTemp.max ? why it is not allowing me to do so ? – thndrkiss Jun 04 '14 at 06:43
  • 2
    @thndrkiss - This is very new language for all of us so honestly I don't know why we does not able to use instance *(such like `intTemp.max`)* . But here we only accept it as design/syntax of **Swift Language**. – iPatel Jun 04 '14 at 06:47
  • @thndrkiss I haven't downloaded the new sdk but it seems that `min` or `max` could be static property – Inder Kumar Rathore Jun 04 '14 at 07:32
28

Try this in Swift 3:

let value = Int.max
Shadros
  • 728
  • 2
  • 10
  • 19
7

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

Artem Z.
  • 1,243
  • 2
  • 14
  • 36
3

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.

joakim
  • 3,533
  • 2
  • 23
  • 28