En C / Objective-C es posible encontrar el valor mínimo y máximo entre dos números usando macros MIN y MAX. Swift no admite macros y parece que no hay equivalentes en la biblioteca de idioma / base. ¿Hay que ir con una solución personalizada, tal vez sobre la base de los genéricos como este uno ?
97
let a : Int = 5
y presionas Comando + clicInt
, ¡podrás ver cosas interesantes!a.
y desplazándome por las posibilidades de finalización de Xcode ... ¡pero 'Command + Click' es el boleto!Como se señaló, Swift proporciona
max
ymin
funciona.Un ejemplo (actualizado para Swift 2.x).
fuente
Con Swift 5
max(_:_:)
ymin(_:_:)
son parte de las funciones numéricas globales .max(_:_:)
tiene la siguiente declaración:Puedes usarlo así con
Int
s:También tenga en cuenta que hay otras funciones llamadas
max(_:_:_:_:)
ymin(_:_:_:_:)
que le permite comparar aún más parámetros.max(_:_:_:_:)
tiene la siguiente declaración:Puedes usarlo así con
Float
s:Sin embargo, con Swift, no está limitado al uso
max(_:_:)
y sus hermanos con números. De hecho, esas funciones son genéricas y pueden aceptar cualquier tipo de parámetro que se ajuste alComparable
protocolo, ya seaString
,Character
uno de sus personalizadosclass
ostruct
.Por lo tanto, el siguiente código de muestra de Playground funciona perfectamente:
Además, si desea obtener el elemento min / max de los elementos que están dentro de una
Array
, aSet
, aDictionary
o cualquier otra secuencia deComparable
elementos, puede usar los métodos max () o min () (consulte esta respuesta de Stack Overflow para obtener más información) detalles).fuente
La sintaxis de SWIFT 4 cambió un poco:
y
Entonces, cuando lo use, debe escribir como en este ejemplo:
Entonces obtienes el valor de 0 a 100, no importa si está por debajo de 0 o por encima de 100.
fuente
Int
s, cámbielo a Swift.max y de repente ¡sí !, las cosas están mejor. ¡Gracias wm.p1us!Prueba esto.
fuente