- Published on
Swiftda Typealias
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Typealias dasturingizda mavjud ma'lumot turi uchun yangi nom berish imkonini beradi. Typealias e'lon qilingandan so'ng, butun dastur davomida mavjud tur o'rniga taxallus nomini ishlatish mumkin.
Typealias yangi turlar yaratmaydi. Ular shunchaki mavjud turga yangi nom beradi.
typealias ning asosiy maqsadi β kodimizni yanada o'qishli va inson tushunishi uchun kontekstda aniqroq qilish.
Typealias qanday yaratiladi?
U typealias kalit so'zi yordamida e'lon qilinadi:
typealias nom = mavjud_tur
Swiftda ko'pchilik turlar uchun typealias dan foydalanishingiz mumkin. Ular quyidagilar bo'lishi mumkin:
- O'rnatilgan turlar (masalan:
String,Int) - Foydalanuvchi tomonidan yaratilgan turlar (masalan:
class,struct,enum) - Murakkab turlar (masalan: closurelar)
O'rnatilgan turlar uchun Typealias
Barcha o'rnatilgan ma'lumot turlari uchun typealias dan foydalanishingiz mumkin: String, Int, Float va hokazo.
Masalan:
typealias StudentName = String
Yuqoridagi e'lon String o'rniga hamma joyda StudentName dan foydalanish imkonini beradi. Shunday qilib, agar string turli konstanta yaratmoqchi bo'lsangiz, lekin u ko'proq talaba nomini ifodalasa, quyidagicha qilishingiz mumkin:
let name: StudentName = "Jack"
Typealias ishlatmasdan, string turli konstantani quyidagicha e'lon qilishingiz kerak edi:
let name: String = "Jack"
Yuqoridagi ikkala misol ham String turli konstanta yaratadi. Ammo typealias bilan e'lon qilsak, kodimiz yanada o'qishli bo'ladi.
Foydalanuvchi tomonidan yaratilgan turlar uchun Typealias
O'z ma'lumot turingizni yaratishingiz kerak bo'lgan ko'plab holatlar mavjud. Faraz qilaylik, Talabani ifodalovchi tur yaratmoqchisiz, uni class yordamida yaratishingiz mumkin:
class Student {
}
Endi talabalar guruhi arrayni quyidagicha ifodalash mumkin:
var students: Array<Student> = []
Yuqoridagi e'lonni typealias yordamida Array<Student> uchun o'z turingizni yaratish orqali yanada o'qishli qilish mumkin:
typealias Students = Array<Student>
Endi kodimizni yanada o'qishli qilishimiz mumkin:
var students: Students = []
Murakkab turlar uchun Typealias
Yana bir misolni tahlil qilaylik. Faraz qilaylik, bizda kirish parametri sifatida closure qabul qiladigan metod bor.
Agar closurelar haqida bilmasangiz, tashvishlanmang. Uni funksiyaning maxsus turi deb o'ylang. Biz buni Swift closures maqolasida batafsil tushuntirib berdik.
func someMethod(oncomp: (Int) -> (String)){
}
Yuqoridagi misol someMethod uchun kirish sifatida closure qabul qiladi. Closure Int qiymatini qabul qiladi va String qaytaradi.
(Int) -> (String) dan foydalanish o'quvchi uchun kamroq ma'noga ega ekanligini ko'rishingiz mumkin. Unga yangi nom berish uchun typealias dan foydalanishingiz mumkin:
typealias CompletionHandler = (Int) -> (String)
Endi metodini qayta yozishingiz mumkin:
func someMethod(oncomp: CompletionHandler){
}
Xuddi shu kod typealias dan foydalanish bilan ancha aniq va dasturchi uchun qulay ko'rinishini ko'ramiz.
Misol:
// String uchun typealias
typealias Matn = String
// Int array uchun typealias
typealias Sonlar = Array<Int>
// Matn turidan foydalanish
let greeting: Matn = "Salom"
print(greeting)
// Sonlar turidan foydalanish
var raqamlar: Sonlar = [1, 2, 3, 4, 5]
print(raqamlar)
Natija:
Salom
[1, 2, 3, 4, 5]
Yuqoridagi misolda:
MatnβStringturi uchun typealiasSonlarβArray<Int>turi uchun typealias
Bu typealias orqali kodimiz yanada tushunarli va o'qishli bo'ldi.