Jadi Akhirnya Swift 5 dirilis, Ada beberapa fitur baru dan beberapa fitur ditingkatkan. untuk menggunakan keunggulan swift -5, kita perlu memahami secara detail, Ayo Mulai

Terakhir, jika Anda terkesan dengan fitur Swift 5 dan mencari migrasi. Tidak ada yang perlu dikhawatirkan. Swift 5 kompatibel dengan Swift 4, Swift 4.1, dan Swift 4.2 dalam hal pengembangan aplikasi iOS yang efisien.

Anda hanya perlu menggunakan migrator kode Apple Xcode 10.2 dan banyak perubahan akan ditangani secara otomatis oleh migrator kode itu sendiri. Anda juga dapat menggunakan panduan migrasi yang tersedia di situs web resmi sesuai dengan hasil yang Anda harapkan.

Sorotan utama Swift 5.0 adalah stabilitas ABI. Stabilitas ABI adalah singkatan dari stabilitas Antarmuka Biner Aplikasi, yang setara biner dari API, Antarmuka Pemrograman Aplikasi.

Pengembang aplikasi iOS menggunakan berbagai API pustaka untuk menulis kode menggunakan Swift untuk aplikasi Anda. Misalnya, kerangka kerja UIKit menyediakan API untuk berinteraksi dengan tombol, label, dan pengontrol tampilan.

Dengan stabilitas ABI, saat pengguna mendownload dan menginstal aplikasi Anda, mereka tidak perlu mendownload semua kode yang diperlukan aplikasi Anda. Sebagian besar kode tersebut sudah ada di iPhone mereka, sebagai bagian dari iOS, kerangka kerja dan perpustakaannya. Aplikasi Anda hanya perlu menggunakan kode biner yang sudah ada. Stabilitas ABI di Swift 5 akan membuat aplikasi masa depan lebih kecil dan lebih mudah dibuat.

Ada banyak kasus penggunaan dalam pemrograman praktis terkait Swift. Salah satu cara yang paling umum adalah memeriksa apakah suatu bilangan dapat dibagi dengan bilangan lain (Kelipatan Integer). Karena memerlukan pemeriksaan apakah suatu bilangan genap atau ganjil, pendekatan defaultnya adalah menggunakan operator sisa%.

Swift 5 hadir dengan fungsi baru isMultiple (of 🙂 untuk memeriksa apakah bilangan bulat yang diberikan adalah kelipatan dari angka lain. Fungsi Swift 5 ini meningkatkan keterbacaan kode dan juga dapat ditemukan dengan pelengkapan otomatis XCode.

Contoh Penggunaan:

biarkan nomor = 42
jika number.isMultiple (dari: 2) {
print (“(angka) genap!”)
}

Swift 5 memperkenalkan tipe baru yang disebut tipe Hasil untuk pengembangan aplikasi iOS. Jenis ini berfungsi dengan dua status hasil yang diteruskan: berhasil dan gagal, dan karena popularitasnya yang tinggi, sekarang tersedia di pustaka standar Swift.

Jenis hasil merangkum kemungkinan nilai kembali dan kesalahan dalam satu objek. Ini memanfaatkan kekuatan enumerasi dan SWift 5 membantu Anda menulis kode yang lebih bermakna.

Contoh Penggunaan:

dataTask (dengan: url) {(hasil: Hasil) di
ganti hasil {
case let .success (data):
handleResponse (data: data)
case let .error (error):
handleError (kesalahan)
}
}

Anda mungkin sudah terbiasa dengan fungsi koleksi seperti peta (:), mengurangi(🙂 dan filter (_ :). Masalah dengan fungsi di atas adalah – membuat kode terlalu bertele-tele dan boros. Meskipun kita hanya ingin menghitung, pertama-tama kita perlu memfilter, dan di sinilah ‘count (di mana 🙂 masuk. Fungsi ini memungkinkan kita untuk memfilter dan menghitung dalam satu panggilan fungsi dengan mulus menggunakan Swift 5.

Contoh Penggunaan:

biarkan skor = [1, 3, 8, 2, 5, 6, 2, 10]
biarkan menghitung = skor.hitung (di mana: {$ 0> 5})
cetak (hitung)

Keluaran = 3

Meskipun tidak salah untuk menggunakan operator bersarang, mereka membingungkan dan sepertinya tidak perlu. Terkadang mereka membutuhkan jumlah operasi yang lebih besar bahkan untuk melakukan tugas sederhana. Swift 5 meratakan opsional bersarang yang dihasilkan dari try? memberi mereka perilaku yang sama seperti? dan rangkaian opsional. Ini juga membantu pengembang menjaga kode tetap rapi dan bersih.

Contoh Penggunaan:

jika biarkan mesin = (coba? sepeda? .getEngine ()) sebagai? Mesin {
// itu dia
}

Pustaka Swift standar dilengkapi dengan dua fungsi penting untuk array dan kamus.

map (_ 🙂 – Ini menerapkan fungsi ke item larik dan mengembalikan larik yang dihasilkan.

compactMap (_ 🙂 – membuang item array yang nihil.

Di sisi lain, The mapValues ​​(Fungsi 🙂 melakukan hal yang sama untuk kamus kecuali ia tidak membuang item array nil. Swift 5 menghadirkan compactMapValues ​​(🙂 fungsi untuk kamus.

Ini pada dasarnya menggabungkan compactMap (🙂 fungsi array dengan mapValues ​​(🙂 fungsi kamus untuk nilai pemetaan dan penyaringan yang efektif.

Fitur umum untuk pustaka standar sama untuk Swift 4.2 dan Swift 5. Di sini, kita akan membahas fitur baru Swift 5.

Pustaka standar di Swift 5 menyertakan banyak fitur baru selain Swift 4.2 yang membantu pemrogram Swift untuk mengelola pustaka mereka dengan baik. Beberapa yang utama adalah sebagai berikut:

Peningkatan dukungan Teks Mentah untuk string literal.
Jenis vektor SIMD dan Hasil sekarang tersedia di Perpustakaan Standar Swift 5.
String diubah dengan encoding UTF-8 untuk meningkatkan kinerja.
Menambahkan lebih banyak fleksibilitas untuk membuat teks dari data dengan meningkatkan interpolasi String.
Peningkatan kinerja pada Dictionary and Set

Swift 5 menghadirkan sejumlah fitur baru di Swift Package Manager. Ini mencakup pengaturan build khusus target, target penerapan yang disesuaikan, mirroring ketergantungan, dll.

Selain itu, Anda sekarang dapat mengimpor pustaka dalam REPL menggunakan perintah swift run tanpa perlu membuat file yang dapat dieksekusi.

Fitur baru lainnya dari Swift 5 adalah bahasa dan Pembaruan Kompilator.

Swift 5 hadir dengan Exclusivity Enforcement secara default dan memungkinkan akses eksklusif ke memori untuk versi debug dan rilis. Sekarang mendukung jenis panggilan dinamis dan membantu meningkatkan interoperabilitas dengan bahasa seperti JavaScript, Python, dan Ruby.

Swift juga menambahkan inisialisasi literal melalui paksaan, jalur kunci Identitas, dan proposal lainnya sebagai hasil dari proses Evolusi Swift.

Swift 5 memungkinkan Anda membuat string mentah. Garis miring terbalik dan tanda kutip diinterpretasikan sebagai simbol literal, bukan karakter pelolos atau terminator string. Ekspresi reguler dan kasus pengguna lainnya menjadi lebih mudah.

Untuk menggunakan string mentah, Anda dapat meletakkan satu atau lebih simbol # sebelum string:

let rain = # “” Hujan “di” Spanyol “terutama jatuh pada orang Spanyol.” #
Simbol hashtag di awal dan akhir string adalah bagian dari pemisah string. Dengan cara ini, Swift menafsirkan bahwa tanda kutip mandiri di sekitar “hujan” dan “Spanyol” harus diperlakukan sebagai tanda kutip daripada mengakhiri string.

Demikian pula, string mentah memungkinkan Anda menggunakan garis miring terbalik juga:

let keypaths = # ”Swift keypaths seperti Person.name menahan referensi yang tidak dipanggil ke properti.” #
Bahkan di sini, garis miring terbalik diperlakukan sebagai karakter literal dalam string, bukan karakter escape.

Fitur menarik dari string mentah ini adalah bagaimana Anda dapat menggunakan hashtag di awal dan akhir. Bahkan jika Anda ingin menggunakannya lebih dari sekali dalam acara yang tidak terduga. Pertimbangkan string ini: Kucing saya berkata “meong” #goodcat. Karena tidak ada celah di depan hashtag, Swift akan mendeteksi “# dan memahaminya sebagai terminator string. Dalam situasi ini kita perlu mengubah pembatas kita dari # ”menjadi ##”, seperti ini:

biarkan str = ## ”Kucing saya berkata“ meong ”#goodcat” ##
Pastikan jumlah hash di akhir cocok dengan angka di awal, untuk hasil yang benar.

String mentah dan sistem string multi-baris Swift sepenuhnya kompatibel satu sama lain – yang perlu Anda lakukan hanyalah menggunakan # “” “untuk memulai, lalu” “” # untuk mengakhiri, seperti ini:

biarkan multiline = # ”” ”
Jawaban untuk hidup,
alam semesta,
dan semuanya # (jawaban).
“” ”#

Switch case harus lengkap ketika datang ke Swift. Ini juga berlaku untuk Swift 5. Anda dapat menangani ini dengan menggunakan kasus default. Semua kasus yang ingin Anda tangani biasanya ditangani oleh kasus default.

Kasus Enum mendatang memiliki sintaks @unknown default: Anda hanya dapat menggunakannya sebagai pengganti kasus default.

Jika dan ketika enum baru ditambahkan, Anda ditunjukkan oleh case dengan peringatan jika Anda ingin menangani kasus enum itu satu per satu.

Di Swift 4.2, Anda dapat mengimplementasikan algoritme pemrosesan teks untuk skalar unicode seperti:

biarkan username = “mycodetips001”
huruf var = 0
username.unicodeScalars.forEach {
huruf + = (65… 90) ~ = $ 0. nilai || (97… 122) ~ = $ 0. nilai? 1: 0
}
print (“Nama pengguna memiliki (huruf) huruf.”)
Dalam kode ini, Anda menghitung berapa banyak huruf yang dimiliki nama pengguna dengan menentukan apakah skalar unicode setiap karakter merupakan huruf kecil atau huruf kapital.

Versi terbaru yang cepat menambahkan properti ke skalar unicode, yang menyederhanakan pemrosesan teks:

username.unicodeScalars.forEach {huruf + = $ 0.properties.isAlphabetic? 1: 0}
Dalam kode ini, isAlphabetic digunakan untuk menentukan apakah setiap karakter adalah digit. Proposal yang ditautkan menunjukkan semua properti yang dapat Anda periksa.

Dengan Swift 5, interpolasi string menjadi lebih efisien dan lebih fleksibel. Mereka telah membuat berbagai macam fitur Swift baru yang tidak ada di Swift 4.2.

Dengan kata sederhana, rilis Swift baru ini memiliki sistem interpolasi string yang diperbarui yang memungkinkan Anda mengontrol bagaimana objek muncul dalam string dibandingkan dengan Swift 4.2. Debugging lebih mudah menggunakan Swift karena memiliki perilaku default untuk struct karena mencetak nama struct diikuti dengan semua propertinya. Namun, kelas tidak memiliki perilaku ini. Jika Anda bekerja dengan sebuah kelas dan ingin memformat keluaran agar menjadi tampilan pengguna, Anda dapat menggunakan sistem interpolasi string baru.

Misalnya, jika kami memiliki struct seperti ini:

Pengguna struct {
nama var: String
var zodiak: String
}
Anda dapat menambahkan interpolasi string khusus agar dapat mencetak hasil pengguna dengan rapi. Untuk ini, Anda bisa menambahkan ekstensi ke String.StringInterpolation dengan metode appendInterpolation () baru. Swift 5 memiliki beberapa bawaan ini.

Kami mengilustrasikan cara menambahkan implementasi yang menempatkan nama dan zodiak pengguna ke dalam satu string. Itu kemudian memanggil salah satu metode appendInterpolation () built-in untuk menambahkannya ke string kita, seperti ini:

ekstensi String.StringInterpolation {
mutating func appendInterpolation (_ value: User) {
appendInterpolation (“Nama saya (value.name) dan tanda Zodiak saya adalah (value.zodiac)”)
}
}
Sekarang mari tambahkan pengguna dan mencetak datanya:

let user = User (nama: “Mycodetips”, zodiak: Leo)
print (“Detail pengguna: (pengguna)”)
Itu akan mencetak hasil sebagai detail Pengguna: Nama saya John Doe dan Zodiak saya Cancer, sedangkan jika kami menggunakan interpolasi string kustom, itu akan mencetak Detail pengguna: Pengguna (nama: “Mycodetips”, zodiak: Leo).

Pembaruan pengelola paket Swift 5 mendukung jenis yang dapat dipanggil secara dinamis yang membantu meningkatkan interoperabilitas dengan bahasa dinamis seperti Python, JavaScript, dan Ruby.

Overload operator tanda kurung dari C ++ mirip dengan panggilan Dinamis, bersama dengan argumen kata kunci dari Python.

Ide utama di Swift 5.0 adalah Anda harus bisa menyampaikan argumen apa pun padanya.

Nama tag tidak terbatas pada metode definisi tajuk apa pun dan dapat disebut apa pun yang Anda inginkan. Anda dapat melakukan panggilan dinamis dengan dua cara

  1. Dengan label dan
  2. Tanpa label dimana urutan masukan tidak menjadi masalah untuk menggunakan fitur ini.

Misalnya, Anda membuat objek yang mengembalikan string JSON. Pertama, Anda menentukan struct dan dapat menandainya dengan di dynamiccallable. Versi ini juga mensintesis penginisialisasi berdasarkan anggota untuk struct.

Sekarang Anda membuat metode pertama tanpa label. Buat tag dan parameter seperti di bawah ini.

@bayu_joo
struct createJson {
func dynamicallyCall (withArguments args:[Int]) -> String {
let jsonString = args.map {String ($ 0)}. bergabung (separator: “,”)
return “(jsonString)”
}

}
Pastikan jenis parameter Anda adalah larik, namun Anda dapat memilih jenis larik.