Question

Selon la documentation d'Apple, Swift ne prend pas en charge les directives de préprocesseur.En C/Objective-c, le "INFINI" définition est très utile pour certains contrôles.Alors, Comment puis-je obtenir un numéro qui n'est jamais moins qu'un autre?

Était-ce utile?

La solution

Il y a déjà une buildin infini et une fonction de contrôle.Et vous pouvez également les comparer directement avec <.

var infinity = Double.infinity
var isInfinite = infinity.isInfinite
var someDouble = 234432.0
if someDouble < infinity {
    println("Less than")
} else {
    println("Small than")
}
// And the answer is Less than.

Autres conseils

Pour les valeurs entières, vous devez utiliser Int.max.

var highestNumber = Int.max

//if you need negative infinity
var lowestNumber = Int.min

À l'aide de NSIntegerMax au lieu de Int.max ou -1 * NSIntegerMax au lieu de Int.min qui est équivalent, mais moins joli.(Merci @Charlesism)

Peut-être que vous pouvez essayer finite, par exemple,

let x:CDouble = 0.1
finite(x) // which return a CInt

pour les valeurs de flotteur,

import UIKit

typealias Space = Float

var MaxSpaceSize = Space.infinity

var space:Space = 1100

space = space * 2

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top