В C / Objective-C можно найти минимальное и максимальное значение между двумя числами, используя макросы MIN и MAX. Swift не поддерживает макросы, и похоже, что в языковой / базовой библиотеке нет эквивалентов. Если один идти с пользовательским решением, может быть основано на дженерики , как этот один ?
98
let a : Int = 5
и Command + ClickInt
, вы увидите интересные вещи!a.
и просматривал возможности завершения Xcode ... но «Command + Click» - это билет!Как уже отмечалось, Swift предоставляет
max
иmin
функционирует.Пример (обновлен для Swift 2.x).
источник
В Swift 5
max(_:_:)
иmin(_:_:)
являются частью глобальных числовых функций .max(_:_:)
имеет следующее объявление:Вы можете использовать это с
Int
s:Также отметим , что существуют и другие функции , которые вызываются
max(_:_:_:_:)
иmin(_:_:_:_:)
что позволяет сравнивать даже больше параметров.max(_:_:_:_:)
имеет следующее объявление:Вы можете использовать это с
Float
s:Однако со Swift вы не ограничены в использовании
max(_:_:)
и его собратьях с числами. На самом деле, эти функции являются общими и могут принимать параметры любого типа , который соответствуетComparable
протоколу, это может бытьString
,Character
или один из пользовательскихclass
илиstruct
.Таким образом, следующий пример кода Playground отлично работает:
Кроме того, если вы хотите получить элемент min / max элементов, которые находятся внутри
Array
, aSet
, aDictionary
или любой другой последовательностиComparable
элементов, вы можете использовать методы max () или min () (см. Этот ответ о переполнении стека для получения дополнительной информации подробности).источник
Синтаксис SWIFT 4 немного изменился:
и
Поэтому, когда вы его используете, вы должны писать, как в этом примере:
Таким образом, вы получаете значение от 0 до 100, независимо от того, меньше ли оно 0 или больше 100.
источник
Int
s, затем измените его на Swift.max и вдруг ура, все станет лучше. Спасибо, wm.p1us!Попробуй это.
источник