Semakin sedikit waktu yang tersisa hingga peluncuran kursus
"Pengembang iOS" , jadi hari ini kami terus menerbitkan materi dari seri "10 Pertanyaan tentang Swift". Bagian pertama yang bisa
dibaca di sini .

Jelaskan obat generik di Swift?
Generik (template generik) memungkinkan Anda untuk menulis fungsi dan tipe yang fleksibel dan dapat digunakan kembali yang dapat bekerja dengan semua jenis. Anda dapat menulis kode yang menghindari duplikasi dan mengekspresikan tujuannya secara jelas dan abstrak.
Jenis Array dan Kamus di Swift adalah koleksi universal (generik).
Dalam kode di bawah ini, fungsi universal untuk menukar dua nilai digunakan untuk string dan integer. Ini adalah contoh kode yang dapat digunakan kembali.
func swapTwoValues<T>(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA } var num1 = 4 var num2 = 5 var str1 = βaβ var str2 = βbβ swapTwoValues(&num1,&num2) swapTwoValues(&str1,&str2) print (βnum1:β, num1)
Apa jenis opsional dalam cepat dan kapan harus digunakan?
Opsional (Opsional, βopsionalβ) di Swift adalah jenis yang nilainya mungkin atau mungkin tidak. Opsi ditunjukkan dengan menambahkan "?" untuk jenis apa pun.
Opsi untuk menggunakan opsional:- Cuplikan kode yang mungkin gagal (saya mengharapkan sesuatu, tetapi tidak menerima apa pun).
- Objek yang saat ini kosong tetapi dapat menjadi sesuatu nanti (dan sebaliknya).
Contoh opsional yang bagus:Properti yang mungkin atau mungkin tidak ada , seperti nama tengah atau suami / istri di kelas Person.Metode yang dapat mengembalikan nilai atau tidak sama sekali , misalnya, cocok dengan array.Metode yang dapat mengembalikan hasil atau mendapatkan kesalahan dan tidak mengembalikan apa pun , misalnya, cobalah membaca konten file (sebagai hasilnya data file biasanya akan dikembalikan), tetapi file tersebut tidak ada.Mendelegasikan properti yang tidak selalu harus ditetapkan dan biasanya ditetapkan setelah inisialisasi.
Suka tautan lemah di kelas . Apa yang mereka tunjuk dapat disetel ke nol kapan saja.
Jika Anda memerlukan cara untuk mengetahui kapan nilainya diatur (data belum dimuat> data) alih-alih menggunakan variabel boolean terpisah, dataLoaded.
Apa itu chaining opsional di Swift?
Proses permintaan, memanggil properti, subskrip dan metode untuk opsional, yang mungkin memiliki nilai "nihil", didefinisikan sebagai urutan opsional (rantai opsional) .Urutan opsional mengembalikan dua nilai -
- jika opsi berisi "nilai", maka ketika properti, metode, dan subskrip yang terkait dengannya dipanggil, nilai dikembalikan
- jika opsional berisi "nihil", semua properti, metode dan subskrip yang terkait dengannya mengembalikan nihil
Urutan opsional adalah alternatif untuk membongkar paksa.
Apa yang dipaksa dibuka?
Membongkar paksa adalah cara untuk
mengambil nilai yang terkandung dalam opsional. Operasi ini berbahaya karena Anda pada dasarnya memberi tahu kompiler: Saya yakin bahwa opsi ini mengandung nilai nyata, ekstrak!
let value: Int? = 1 let newValue: Int = value!
Apa itu bungkusan implisit?
Pembongkaran tersirat : ketika kita mendefinisikan opsi secara implisit dibongkar, kita mendefinisikan sebuah wadah yang secara otomatis akan membongkar setiap kali kita membacanya.
var name: String! = βViratβ let student = name
Jika opsional yang dibongkar secara implisit adalah nihil dan Anda mencoba mengakses nilainya yang dikemas, Anda akan melempar kesalahan runtime. Hasilnya persis sama seperti jika Anda menempatkan tanda seru setelah opsional biasa, yang tidak mengandung nilai.Apa yang mengikat opsional?
Anda dapat membongkar opsi dengan cara "aman" atau "tidak aman". Cara yang aman adalah dengan menggunakan binder opsional.
Ikatan opsional digunakan untuk menentukan apakah opsional mengandung nilai, dan jika demikian, kami akan membuat nilai itu tersedia sebagai konstanta waktu atau variabel. Jadi, tidak perlu menggunakan sufiks! untuk mengakses nilainya.
let possibleString: String? = "Hello" if let actualString = possibleString {
Apa itu Guard
dan apa manfaatnya?
Pernyataan
guard
itu sederhana dan kuat. Itu memeriksa beberapa kondisi dan, jika itu dievaluasi sebagai salah, pernyataan lain dijalankan, yang biasanya mengakhiri metode.
func addStudent(student: [String: String]) { guard let name = student["name"] else { return } print("Added \(name)!") guard let rollNo = student ["rollNo"] else { print("roll No not assigned") return } print("Assigned roll no is \(rollNo).") } addStudent(student: ["name": "Ravi"])
Keuntungan dari
guard
adalah
eksekusi lebih cepat . Blok
Guard
dieksekusi hanya jika kondisinya salah dan blok akan keluar melalui pernyataan transfer kontrol seperti
return
,
break
,
continue
atau
thrown
. Ini memberikan jalan keluar awal dan kurung lebih sedikit. Keluar awal berarti eksekusi lebih cepat.
Silakan merujuk ke artikel
ini untuk informasi lebih lanjut.
Kapan guard let
harus digunakan, dan kapan if let
?- Gunakan
guard
saat Anda ingin menghilangkan input yang tidak terduga / salah dan fokus pada tujuan jika Anda memiliki cara alternatif dalam menangani input. - Gunakan
guard
if
else
menghalangi untuk mengurangi sarang dan lekukan, karena itu relatif kompak.
Apa itu defer
?
defer
digunakan untuk mengeksekusi serangkaian pernyataan sesaat sebelum eksekusi kode meninggalkan blok saat ini.
defer
di dalam blok
if
akan dieksekusi terlebih dahulu. Ini diikuti oleh pola LIFO untuk mengeksekusi pernyataan
defer
tersisa.
func doSomething() { defer { print(β1β)} defer { print(β2β)} defer { print(β3β)} if 1<2 { defer { print("1<2")} } defer { print(β4β)} defer { print(β5β)} defer { print(β6β)} } 1<2 6 5 4 3 2 1
Daftar operator transfer kontrol mana yang digunakan di Swift?
break
- Pernyataan
break
mengakhiri eksekusi seluruh aliran pernyataan kontrol segera.
continue
- pernyataan
continue
memberitahu loop untuk menghentikan apa yang dilakukannya dan mulai lagi di awal iterasi loop berikutnya.
return
- mengembalikan nilai dari fungsi.
throw
- perlu penerusan kesalahan menggunakan Throwing Functions
fallthrough
- pernyataan
fallthrough
digunakan dalam switch case block untuk mengeksekusi statement case, yang berada di sebelah pernyataan case yang sesuai berdasarkan kebutuhan pengguna.
Dalam
swift
operator
fallthrough
digunakan untuk mengeksekusi kasus berikutnya, bahkan jika itu tidak cocok dengan aslinya.
let integerToDescribe = 5 var description = βThe number \(integerToDescribe) isβ switch integerToDescribe { case 2, 3, 5, 7, 11, 13, 17, 19: description += β a prime number, and alsoβ fallthrough case 10: description += β case 10.β default: description += β an integer.β } print(description)
Akhir dari bagian kedua. Bagian pertama bisa
dibaca di sini .
Kami menunggu komentar Anda dan mengingat bahwa dalam beberapa jam akan ada
hari terbuka , dalam kerangka yang akan kami bicarakan secara terperinci tentang kursus kami.