En C / Objective-C, il est possible de trouver la valeur minimale et maximale entre deux nombres en utilisant les macros MIN et MAX. Swift ne prend pas en charge les macros et il semble qu'il n'y ait pas d'équivalents dans le langage / bibliothèque de base. Doit-on opter pour une solution personnalisée, peut-être basée sur des génériques comme celui- ci ?
98
let a : Int = 5
et Command + Cliquez surInt
, vous obtenez de voir des trucs sympas!a.
et fait défiler les possibilités de complétion Xcode ... mais 'Command + Click' est le ticket!Comme indiqué, Swift fournit
max
etmin
fonctionne.Un exemple (mis à jour pour Swift 2.x).
la source
Avec Swift 5,
max(_:_:)
etmin(_:_:)
font partie des fonctions numériques globales .max(_:_:)
a la déclaration suivante:Vous pouvez l'utiliser comme ceci avec
Int
s:Notez également qu'il existe d'autres fonctions appelées
max(_:_:_:_:)
etmin(_:_:_:_:)
qui vous permettent de comparer encore plus de paramètres.max(_:_:_:_:)
a la déclaration suivante:Vous pouvez l'utiliser comme ceci avec
Float
s:Avec Swift cependant, vous n'êtes pas limité à l'utilisation
max(_:_:)
et à ses frères et sœurs avec des chiffres. En fait, ces fonctions sont génériques et peuvent accepter n'importe quel type de paramètre conforme auComparable
protocole, que ce soitString
,Character
ou l'un de vos fichiersclass
oustruct
.Ainsi, l'exemple de code Playground suivant fonctionne parfaitement:
De plus, si vous souhaitez obtenir l'élément min / max des éléments qui sont à l'intérieur d'une
Array
, aSet
, aDictionary
ou toute autre séquence d'Comparable
éléments, vous pouvez utiliser les méthodes max () ou min () (voir cette réponse Stack Overflow pour plus détails).la source
La syntaxe de SWIFT 4 a un peu changé:
et
Ainsi, lorsque vous l'utilisez, vous devez écrire comme dans cet exemple:
Ainsi, vous obtenez la valeur de 0 à 100, peu importe qu'elle soit inférieure à 0 ou supérieure à 100.
la source
Int
s, changez-le en Swift.max et soudainement, les choses vont mieux. Merci wm.p1us!Essaye ça.
la source