Согласно документации Apple, Swift не поддерживает директивы препроцессора. В C/Objective-c определение "INFINITY" очень полезно для некоторых проверок. Итак, как мне получить число, которое никогда не меньше другого?
Беспокойство в Свифт-Ланге
Ответ 1
Существует уже встроенная бесконечность, а также функция проверки. И вы также можете напрямую сравнить их с <.
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.
Ответ 2
Для целых значений вы должны использовать Int.max
.
var highestNumber = Int.max
//if you need negative infinity
var lowestNumber = Int.min
Использование NSIntegerMax
вместо Int.max
или -1 * NSIntegerMax
вместо Int.min
эквивалентно, но менее красиво. (Спасибо @Charlesism)
Ответ 3
Возможно, вы можете попробовать finite
, например,
let x:CDouble = 0.1
finite(x) // which return a CInt
Ответ 4
Для значений Float,
import UIKit
typealias Space = Float
var MaxSpaceSize = Space.infinity
var space:Space = 1100
space = space * 2