Hey Hey Hey π KotlinPedia kanaliga xush kelibsiz. π₯
Ushbu kanalda siz Kotlin dasturlash tilining eng nozik va o'ziga xos jihatlari bilan tanishishingiz, unda bo'layotgan o'zgarishlar va yangiliklardan boxabar bo'lishingiz mumkin bo'ladi.
Bundan tashqari kanalda Kotlin haqida kichik test va viktorinalar ham e'lon qilib boriladi va ularga javob topish orqali siz o'z bilimlaringizni mustahkamlab ham borishingiz mumkin.
Qiziqarli va foydali content hali oldinda! Shunday ekan kanalga obuna bo'ling va kuzatishda davom eting. π
Ushbu kanalda siz Kotlin dasturlash tilining eng nozik va o'ziga xos jihatlari bilan tanishishingiz, unda bo'layotgan o'zgarishlar va yangiliklardan boxabar bo'lishingiz mumkin bo'ladi.
Bundan tashqari kanalda Kotlin haqida kichik test va viktorinalar ham e'lon qilib boriladi va ularga javob topish orqali siz o'z bilimlaringizni mustahkamlab ham borishingiz mumkin.
Qiziqarli va foydali content hali oldinda! Shunday ekan kanalga obuna bo'ling va kuzatishda davom eting. π
π6
Kotlin dasturlash tili zamonaviy, qulay va JVM da ishlovchi hamda Java kodlari bilan muloqotga kirisha oluvchi til hisoblanadi. Uning asosiy qulayliklaridan biri, hammamizga ma'lum bo'lgan class larning aloxida turi - data class hisoblanadi.
Data class e'lon qilishimiz uchun class kalit so'zi oldidan data kalit so'zini ko'rsatishimiz kerak bo'ladi va uning konstruktorida kamida 1ta parameter kiritishimiz kerak bo'ladi. Misol uchun:
Data class e'lon qilishimiz bilan kotlin tili bizga bazi funksiyalarni yozib berishni boshlaydi. Bular:
- toString(): Bu funksiya obyektning string ko'rinishini qaytaradi.
- equals(): Ushbu funksiya bir xil data classdan olingan ikki obyektning teng ekanligini tekshiradi va tengligiga qarab, true yoki false javoblarini qaytaradi
- hashCode(): Bu funksiya obyektning hash qiynatini qaytaradi. Bu qiymat bizga obyektimizni hashmap yoki hashset kabi sturukturalarda saqlashda kerak bo'ladi.
- copy(): Bu funksiya esa obyektimizning bir yoki bir nechta hususiyatlarini Γ³zgartirgan holda yangi obyekt yaratishga yordam beradi. Yuqoridagi misolda yatatilgan obyektni boshqa ism bilan yangi obyektga ko'chirishimiz mumkin bΓ΄ladi:
- componentN(): Bu bir nechta funksiyalar to'plami bo'lib, bizga data classning hususiyatlariga ularning konstrutordagi tartib raqami bilan murojat qilish imkonini beradi. Misol uchun, ism va yoshga murojat qilishda:
componentN() funksiyasi ayniqsa sturukturasiz qiymatlashda yaniy data class hususiyatlarini aloxida o'zgaruvchilarga bir qatorda qiymatlashda qulaylik yaratadi:
Va bu quyidagi kodga teng bo'ladi:
Data classlar ma'lumotlarni saqlash va ular ustida o'zgarishlar qilish uchun eng qulay class turi hisoblanadi. Eng muhumi esa data classlarni o'qish juda oson. Lekin data classlarni ishlatish uchun bazi bir qoidalar va cheklovlar ham mavjud. Bular:
- Data classlarda abstract, open va sealed kalit so'zlari ishlatish mumkin emas.
- Data classlar boshqa classlardan nasil ololmaydi.
- Data class konstruktorida kamida 1ta parameter bo'lishi kerak
Bu Data class haqida qisqacha post edi. Agar ko'proq o'rganishni xohlasangiz quyidagi havola orqali rasmiy dokumentsiyaga o'tishingiz mumkin.
Data class e'lon qilishimiz uchun class kalit so'zi oldidan data kalit so'zini ko'rsatishimiz kerak bo'ladi va uning konstruktorida kamida 1ta parameter kiritishimiz kerak bo'ladi. Misol uchun:
data class Person(val name: String, val age: Int)
Data class e'lon qilishimiz bilan kotlin tili bizga bazi funksiyalarni yozib berishni boshlaydi. Bular:
- toString(): Bu funksiya obyektning string ko'rinishini qaytaradi.
- equals(): Ushbu funksiya bir xil data classdan olingan ikki obyektning teng ekanligini tekshiradi va tengligiga qarab, true yoki false javoblarini qaytaradi
- hashCode(): Bu funksiya obyektning hash qiynatini qaytaradi. Bu qiymat bizga obyektimizni hashmap yoki hashset kabi sturukturalarda saqlashda kerak bo'ladi.
- copy(): Bu funksiya esa obyektimizning bir yoki bir nechta hususiyatlarini Γ³zgartirgan holda yangi obyekt yaratishga yordam beradi. Yuqoridagi misolda yatatilgan obyektni boshqa ism bilan yangi obyektga ko'chirishimiz mumkin bΓ΄ladi:
val john = Person("John", 25)
val jane = john.copy(name = "Jane")
- componentN(): Bu bir nechta funksiyalar to'plami bo'lib, bizga data classning hususiyatlariga ularning konstrutordagi tartib raqami bilan murojat qilish imkonini beradi. Misol uchun, ism va yoshga murojat qilishda:
val john = Person("John", 25)
val name = john.component1()
val age = john.component2()
componentN() funksiyasi ayniqsa sturukturasiz qiymatlashda yaniy data class hususiyatlarini aloxida o'zgaruvchilarga bir qatorda qiymatlashda qulaylik yaratadi:
val john = Person("John", 25)
val (name, age) = john
Va bu quyidagi kodga teng bo'ladi:
val john = Person("John", 25)
val name = john.name
val age = john.age
Data classlar ma'lumotlarni saqlash va ular ustida o'zgarishlar qilish uchun eng qulay class turi hisoblanadi. Eng muhumi esa data classlarni o'qish juda oson. Lekin data classlarni ishlatish uchun bazi bir qoidalar va cheklovlar ham mavjud. Bular:
- Data classlarda abstract, open va sealed kalit so'zlari ishlatish mumkin emas.
- Data classlar boshqa classlardan nasil ololmaydi.
- Data class konstruktorida kamida 1ta parameter bo'lishi kerak
Bu Data class haqida qisqacha post edi. Agar ko'proq o'rganishni xohlasangiz quyidagi havola orqali rasmiy dokumentsiyaga o'tishingiz mumkin.
Kotlin Help
Data classes | Kotlin
π12π₯3β‘1
Yuqoridagi misolda, toString() funksiyasi qanday ko'rinishda javob qaytaradi
Anonymous Quiz
16%
Obyektning xotirada egallagan joyini
20%
Obyekt hususiyatlari nomini
54%
Class nomi, hususiyatlari nomi va qiymatini
10%
Class nomini
π9
Ertalabdan savol, ketadiyuu
Quyidagi ko'rinishda e'lon qilingan data class bilan qanday muammo bo'lishi mumkin?
Javobni izohlarda qoldiring
Quyidagi ko'rinishda e'lon qilingan data class bilan qanday muammo bo'lishi mumkin?
data class A(var someVar: String)
Javobni izohlarda qoldiring
Kotlin Extension Functions
Kotlin dasturlash tilining yana bir ajoyib qulayliklaridan biri bu - classlarning kodlariga tegmasdan yoki ulardan nasil olmay turib yangi funksional qoshish imkonini beruvchi extension funksiyalar. Bu qulaylik sizga standart kutubxonalardagi classlarga qoshimchalar qilishda juda kerak bo'ladi.
Extension funksiyalarni e'lon qilishda funksional qoshiladigan class nomi ortidan nuqta qoyilgan holda funsiya nomini yozish kerak bo'ladi. Misol uchun:
kotlin
Ushbu koddagi this kalit so'zi orqali ushbu funksiya chaqirilgan obyektga murojat qilish mumkin bo'ladi va bu funksiyani obyektning qolgan funksiyalari kabi chaqirish
kotlin
mumkin bo'ladi.
Bundan tashqari siz toplamlar kabi generic turlar uchun ham extension funsiya yozishingiz mumkin
Kotlin dasturlash tilining yana bir ajoyib qulayliklaridan biri bu - classlarning kodlariga tegmasdan yoki ulardan nasil olmay turib yangi funksional qoshish imkonini beruvchi extension funksiyalar. Bu qulaylik sizga standart kutubxonalardagi classlarga qoshimchalar qilishda juda kerak bo'ladi.
Extension funksiyalarni e'lon qilishda funksional qoshiladigan class nomi ortidan nuqta qoyilgan holda funsiya nomini yozish kerak bo'ladi. Misol uchun:
kotlin
fun String.reverse(): String {
return this.reversed()
}
Ushbu koddagi this kalit so'zi orqali ushbu funksiya chaqirilgan obyektga murojat qilish mumkin bo'ladi va bu funksiyani obyektning qolgan funksiyalari kabi chaqirish
kotlin
mumkin bo'ladi.
val name = "Kotlin"
val reversed = name.reverse()
// "niltoK"
Bundan tashqari siz toplamlar kabi generic turlar uchun ham extension funsiya yozishingiz mumkin
fun <T> List<T>.shuffle(): List<T> {
return this.toMutableList().apply {
Collections.shuffle(this)
}
}
π6π₯2
fun String.reverse(): String {
return this.reversed()
} Ushbu funksiya Javaga compile qilinganda qanday funksiyaga aylanadi?
return this.reversed()
} Ushbu funksiya Javaga compile qilinganda qanday funksiyaga aylanadi?
Anonymous Quiz
42%
String class uchun static funksiya
19%
File nomilik class uchun static funksiya
14%
String class uchun oddiy funksiya
25%
Extensions class uchun oddiy funksiya
π₯4
class Test {
fun String.reverse(): String{
return this.reversed() } } // Ushbu funksiya Javaga compile qlinganda qanday funksiyaga aylanadi?
fun String.reverse(): String{
return this.reversed() } } // Ushbu funksiya Javaga compile qlinganda qanday funksiyaga aylanadi?
Anonymous Quiz
33%
String class uchun static funksiya
18%
Test class uchun oddiy funksiya
42%
Test class uchun static funksiya
7%
Extensions class uchun oddiy funksiya
π1π₯1