Dalam C / Objective-C dimungkinkan untuk menemukan nilai minimum dan maksimum antara dua angka menggunakan makro MIN dan MAX. Swift tidak mendukung makro dan tampaknya tidak ada padanan dalam pustaka bahasa / dasar. Harus satu pergi dengan solusi kustom, mungkin didasarkan pada obat generik seperti ini satu ?
97
let a : Int = 5
dan Command + KlikInt
, Anda akan melihat hal-hal keren!a.
dan menelusuri kemungkinan penyelesaian Xcode ... tetapi 'Command + Klik' adalah tiketnya!Seperti yang ditunjukkan, Swift menyediakan
max
danmin
fungsi.Contoh (diperbarui untuk Swift 2.x).
sumber
Dengan Swift 5,
max(_:_:)
danmin(_:_:)
merupakan bagian dari Fungsi Numerik Global .max(_:_:)
memiliki deklarasi berikut:Anda dapat menggunakannya seperti ini dengan
Int
s:Perhatikan juga bahwa ada fungsi lain yang dipanggil
max(_:_:_:_:)
danmin(_:_:_:_:)
memungkinkan Anda membandingkan lebih banyak parameter.max(_:_:_:_:)
memiliki deklarasi berikut:Anda dapat menggunakannya seperti ini dengan
Float
s:Namun dengan Swift, Anda tidak dibatasi untuk menggunakan
max(_:_:)
dan saudara kandungnya dengan angka. Faktanya, fungsi tersebut bersifat umum dan dapat menerima jenis parameter apa pun yang sesuai denganComparable
protokol, mungkin sajaString
,Character
atau salah satu dari kebiasaan Andaclass
ataustruct
.Dengan demikian, kode contoh Playground berikut berfungsi dengan sempurna:
Selain itu, jika Anda ingin mendapatkan elemen min / max elemen yang ada di dalam rangkaian elemen,
Array
a, aSet
,Dictionary
atau lainnyaComparable
, Anda dapat menggunakan metode max () atau min () (lihat jawaban Stack Overflow ini untuk informasi selengkapnya detail).sumber
Sintaks SWIFT 4 berubah sedikit:
dan
Jadi ketika Anda menggunakannya Anda harus menulis seperti pada contoh ini:
Jadi Anda mendapatkan nilai dari 0 hingga 100 tidak masalah jika di bawah 0 atau lebih tinggi 100.
sumber
Int
detik, lalu ubah ke Swift.max dan tiba-tiba ya, semuanya menjadi lebih baik. Terima kasih wm.p1us!Coba ini.
sumber