KMP
- Kotlin kursu
- Uzman
- Ders 44/47
- 6 dk
Kotlin Multiplatform ile paylaşılan modül yazarsın.
KMP ile paylaşılan modül
İkinci ders, KMP'nin paylaşılan modülünü temsil eden Note veri sınıfını ekler. Bu sınıf commonMain'de yaşar; her hedef onu kullanır.
Örnek: data class Note(val id: Int, val title: String). data class otomatik olarak equals, hashCode ve copy üretir. Bu, paylaşılan veri modelinin temelidir. main'de bir Note oluşturup başlığını yazdırırsın. Sonraki derste bu sınıfı kod üretimiyle genişleteceksin.
Note modelini kullanmak
Bir Note oluşturmak için yapıcıyı çağırırsın: Note(1, "Merhaba"). Özelliklere nokta ile erişilir: n.title.
data class sayesinde iki Note aynı alanlara sahipse eşit sayılır. copy metodu bir alanı değiştirilmiş kopya üretir: n.copy(title = "Yeni"). Bu, paylaşılan veriyi güvenli biçimde güncellemenin yoludur. Bu derste main bir Note yaratıp başlığını yazdırır.
Uygulama Note sınıfını ekle
data class Note(val id: Int, val title: String) tanımla. main içinde val n = Note(1, "Merhaba") yapıp println(n.title) yaz.
Başlangıç kodu
object App {
fun run(): String = "Expert Notes"
}
// Note veri sınıfını ekle (id: Int, title: String)
fun main() {
// bir Note oluştur ve başlığını yazdır
}Örnek çözüm
object App {
fun run(): String = "Expert Notes"
}
data class Note(val id: Int, val title: String)
fun main() {
val n = Note(1, "Merhaba")
println(n.title)
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Note parçalarını eşle
| Kavram | Anlamı |
|---|---|
data class Note |
Paylaşılan veri |
val id |
Tanımlayıcı |
val title |
Başlık |
commonMain |
Kaynak kümesi |
2 Note sınıfı hangi kaynak kümeye yerleşir?
Shared data lives in commonMain.- iosMain
- commonMain Doğru cevap
- jsMain
- androidMain
Açıklama: Note commonMain'de yaşar; her hedef paylaşır.
3 Note tanımını tamamla
data class Note(val id: Int, val ____: String)
data class Note(val id: Int, val title: String)
Açıklama: Note sınıfı id ve title alanlarını taşır.