L'INFINI dans la Swift Lang
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?
- Vous pouvez essayer de la division de la faire flotter par le flotteur de zéro.
- Que probablement vous le flotteur NaN. Ou d'un accident.
- Je crois que le folk de chez Apple sont un peu plus familier avec la norme IEEE 754 que cela.
- la division par zéro, déclenche une exception uniquement avec de la division entière. Bord de cas à virgule flottante divisions sont bien définis et ne causent pas de CPU exceptions.
- Swift ne prend pas en charge les directives de préprocesseur, mais grâce au module de mise en œuvre, Swift n'a pas à analyser les fichiers d'en-tête pour avoir accès à tout ce qui est à l'intérieur. En fait, Swift ne translate simple macro valeurs dans les variables globales. Je n'ai pas accès pour le compilateur, mais avez-vous essayé d'utiliser simplement
INFINITY
? - J'ai essayé, mais Xcode lancer un message d'erreur "l'Utilisation de l'identificateur non résolus". De toute façon, je suis la vérification de la "de Simples Macros", c'est très utile, merci.
- À l'aide de l'INFINI directement les résultats dans un symbole non résolu d'erreur. Je suis en utilisant cette maison de formules pour traiter les 64 bits Double: unsafeBitCast(0x7ff << 52, Double.l'auto)
Vous devez vous connecter pour publier un commentaire.
Il y a déjà bâtiment de l'infini et également une fonction de contrôle. Et vous pouvez également comparer directement avec <.
Pour les valeurs entières, vous devez utiliser
Int.max
.À l'aide de
NSIntegerMax
au lieu deInt.max
ou-1 * NSIntegerMax
au lieu deInt.min
est équivalent, mais moins joli. (Merci @Charlesism)Peut-être vous pouvez essayer
finite
, par exemple,Pour les valeurs flottantes,