web-dev-qa-db-fra.com

Comment trouver la valeur maximale pour Int dans Swift

Je veux comprendre comment accéder au type "struct" d'Int. Lorsque j'ai cmd-cliqué sur Int, cela m'a amené à cette classe, je veux savoir quelle est la valeur maximale que cela peut contenir. Existe-t-il un moyen de tirer de l'une de ces propriétés?. qu'est-ce qui est max et min dans cette 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 }
}
36
thndrkiss

"Vous pouvez accéder aux valeurs minimale et maximale de chaque type d'entier avec ses propriétés min et max:

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

Les valeurs de ces propriétés sont du type numérique de taille appropriée (comme UInt8 dans l'exemple ci-dessus) et peuvent donc être utilisées dans des expressions à côté d'autres valeurs du même type. "

Extrait de: Apple Inc. "The Swift Programming Language." IBooks. https://itun.es/in/jEUH =.

59
iPatel

Essayez ceci dans Swift 3:

let value = Int.max
10
Shadros

Vous pouvez accéder aux valeurs minimale et maximale de chaque type d'entier avec ses propriétés min et max:

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

Les valeurs de ces propriétés sont du type numérique de taille appropriée (comme UInt8 dans l'exemple ci-dessus) et peuvent donc être utilisées dans des expressions à côté d'autres valeurs du même type.

de: https://developer.Apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

6
Artem Z.

Vous pouvez y accéder en tant que propriétés statiques comme suggéré dans d'autres réponses.

Je vois dans certains commentaires que les gens se demandent pourquoi vous ne pouvez pas y accéder en tant que variables d'instance.

C'est comme demander "quelle est la valeur maximale de 5?" et en attendant une réponse sensée.

L'une des principales utilisations de ces variables est la protection contre débordements d'entiers .

Quelque chose dans le sens de "si j'ajoute quelque chose à cet entier qui le rend plus grand que Int.max c'est-à-dire qu'il déclenche un débordement" et agit en conséquence.

En savoir plus sur la façon dont Apple résoudre le problème des débordements d'entiers ici .

1
joakim