- Published on
Swiftda Struct
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Bilimingizni sinab ko'ring!
20 ta savol Β· ~20 daqiqa
Swiftda struct turli ma'lumot turlaridagi o'zgaruvchilarni saqlash uchun ishlatiladi. Masalan,
Faraz qilaylik, biz odamning ismi va yoshini saqlashni xohlaymiz. Biz ikkita o'zgaruvchi yaratishimiz mumkin: name va age va ularga qiymat berishimiz mumkin.
Ammo bir nechta odamlarning bir xil ma'lumotlarini saqlashni xohlasak-chi?
Bunday holatda har bir odam uchun o'zgaruvchilar yaratish zerikarli vazifa bo'lishi mumkin. Buni hal qilish uchun ism va yoshni saqlaydigan struct yaratishimiz mumkin. Endi bu structdan har bir odam uchun foydalanishimiz mumkin.
Structni e'lon qilish
Swiftda struct e'lon qilish sintaksisi:
struct StructureName {
// struktura ta'rifi
}
Bu yerda:
structβ structni e'lon qilish uchun ishlatiladigan kalit so'zStructNameβ structning nomi
Keling, misolni ko'raylik:
struct Person {
var name = "" // ism
var age = 0 // yosh
}
Bu yerda Person nomli struct e'lon qildik. Jingalak qavslar {} ichida struct mos ravishda "" va 0 qiymatlarga ega ikkita o'zgaruvchini o'z ichiga oladi: name va age.
Struct ichidagi o'zgaruvchilar va konstantalar property (xususiyat) deyiladi.
Struct Instancelari
Struct ta'rifi shunchaki loyihadir. Structdan foydalanish uchun uning instancesini yaratishimiz kerak. Masalan,
struct Person {
var name = " " // ism
var age = 0 // yosh
}
// structdan instance yaratish
var person1 = Person()
Bu yerda struct nomi Person dan keyin standart initializer () yozib instance yaratdik.
Endi struct propertylariga murojaat qilish va ularni o'zgartirish uchun person1 instancedan foydalanishimiz mumkin. Masalan,
// name propertyni o'zgartirish
person1.name = "Swift"
// age propertyga murojaat
person1.age
Bu yerda struct propertylariga murojaat qilish uchun nuqta . belgisidan foydalandik.
Misol:
Yuqoridagi misolda ikkita propertyga ega Person nomli struct e'lon qildik: name va age.
Shuningdek, Person structidan person1 nomli instance yaratdik.
Nihoyat, . belgisi yordamida instancening propertylariga murojaat qildik va ularni o'zgartirdik.
Misol:
Yuqoridagi misolda Student structidan ikkita instance yaratdik: student1 va student2.
Structdan xohlagancha instancelar yaratishimiz mumkin.
Swift Memberwise Initializer
Avvalroq biz struct propertyga standart qiymat berdik.
struct Person {
var name = "" // ism
}
Standart initializerdan foydalanib instance yaratdik.
var person1 = Person()
Ammo agar struct propertyga standart qiymat bermasak:
struct Person {
var name: String // ism
}
Instance yaratayotganda qiymat uzatamiz:
var person1 = Person(name: "Kyle")
Bu yerda qavslar () ichidagi qiymatlar avtomatik ravishda structning mos propertylariga tayinlanadi. Bu memberwise initializer deyiladi.
Struct propertyga standart qiymat bergan bo'lsak ham memberwise initializerdan foydalanishimiz mumkin.
Misol:
Yuqoridagi misolda Person structi uchun person1 instancesini yaratdik.
Propertylarga standart qiymat bermaganimiz uchun qiymat berish uchun memberwise initializerdan foydalandik.
Struct ichida funksiya
Swift struct ichida funksiya ham e'lon qilishimiz mumkin. Struct ichida e'lon qilingan funksiya metod deyiladi.
Keling, misolni ko'raylik:
Yuqoridagi misolda Car structi ichida applyBrake() nomli metod e'lon qildik. Metodga murojaat qilishga e'tibor bering:
car1.applyBrake()
Bu yerda struct ichida e'lon qilingan metodga murojaat qilish uchun . belgisidan foydalandik. Nihoyat, metod ichidagi operator bajariladi.