W C / Objective-C można znaleźć minimalną i maksymalną wartość między dwiema liczbami za pomocą makr MIN i MAX. Swift nie obsługuje makr i wydaje się, że nie ma odpowiedników w bibliotece językowej / podstawowej. Trzeba iść z niestandardowego rozwiązania, może na podstawie generycznych jak ten jeden ?
97
let a : Int = 5
i naciśniesz Command + kliknięcieInt
, zobaczysz fajne rzeczy!a.
i przewijałem opcje uzupełniania Xcode ... ale „Command + Click” to bilet!Jak wskazano, Swift zapewnia
max
imin
funkcjonuje.Przykład (zaktualizowany do wersji Swift 2.x).
źródło
Z Swift 5
max(_:_:)
imin(_:_:)
są częścią Global Numeric Functions .max(_:_:)
posiada następującą deklarację:Możesz go używać w ten sposób z
Int
s:Należy również pamiętać, że istnieją inne funkcje wywoływane
max(_:_:_:_:)
imin(_:_:_:_:)
że pozwala porównać nawet więcej parametrów.max(_:_:_:_:)
posiada następującą deklarację:Możesz go używać w ten sposób z
Float
s:Jednak dzięki Swift nie jesteś ograniczony do używania
max(_:_:)
i jego rodzeństwa z liczbami. W rzeczywistości te funkcje są ogólne i mogą akceptować dowolny typ parametru, który jest zgodny zComparable
protokołem, może to byćString
,Character
lub jeden z niestandardowychclass
lubstruct
.W związku z tym następujący przykładowy kod Playground działa idealnie:
Ponadto, jeśli chcesz uzyskać element min / max elementów, które znajdują się wewnątrz sekwencji elementów an
Array
, aSet
, aDictionary
lub dowolnej innej sekwencjiComparable
, możesz użyć metod max () lub min () (zobacz odpowiedź przepełnienia stosu, aby uzyskać więcej informacji Detale).źródło
Składnia SWIFT 4 nieco się zmieniła:
i
Więc kiedy go używasz, powinieneś napisać jak w tym przykładzie:
Więc otrzymujesz wartość od 0 do 100, nie ma znaczenia, czy jest poniżej 0 czy powyżej 100.
źródło
Int
sekundy, to zmień go na Swift.max i nagle tak, wszystko jest lepsze. Dzięki wm.p1us!Spróbuj tego.
źródło