Secondo la documentazione Apple, Swift non supporta le direttive del preprocessore. In C/Objective-c la definizione di "INFINITY" è molto utile per alcuni controlli. Quindi, come ottengo un numero che non è mai inferiore a un altro?INFINITY in Swift Lang
20
A
risposta
31
c'è già buildin all'infinito e anche una funzione di controllo. E potresti anche confrontarli direttamente con <.
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.
0
Forse si può provare finite
, per esempio,
let x:CDouble = 0.1
finite(x) // which return a CInt
3
Per valori interi, è necessario utilizzare Int.max
.
var highestNumber = Int.max
//if you need negative infinity
var lowestNumber = Int.min
Utilizzando NSIntegerMax
invece di Int.max
o -1 * NSIntegerMax
invece di Int.min
è equivalente, ma meno carina. (Grazie @Charlesism)
+8
Oppure "Int.max" che legge meglio di "NSIntegerMax" – Charlesism
0
Per valori Float,
import UIKit
typealias Space = Float
var MaxSpaceSize = Space.infinity
var space:Space = 1100
space = space * 2
Si potrebbe provare a dividere il galleggiante uno dal galleggiante zero. –
@Pascal: Probabilmente ottieni il NaN float. O un incidente. – rickster
@rickster Credo che la gente di Apple abbia un po 'più familiarità con IEEE 754 di quello. –