Kullanım Alanları
Alan modelleme
Kullanım Alanları, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Alanı Modelleme
Değer sınıfları alan modelleme konusunda çok etkilidir. Anonim ilkel değerleri, çalışma zamanı maliyeti olmadan anlamlı ve hataya dayanıklı türlere dönüştürürler.
Gerçekçi senaryoları birlikte inceleyelim.
Türlendirilmiş Kimlikler
Ayrı kimlik türleri, bir sipariş kimliği gereken yerde kullanıcı kimliği aktarılmasını önler; bu, sık rastlanan ve maliyetli bir hatadır.
@JvmInline
value class UserId(val value: Long)
@JvmInline
value class OrderId(val value: Long)
fun fetchUser(id: UserId) = "user " + id.value
fun main() {
println(fetchUser(UserId(7)))
}Ölçü Birimleri
Sayıları birim türleriyle sarmalamak, yanlışlıkla metreleri saniyelere eklemenizi önler ve değerin anlamını belgeler.
@JvmInline
value class Kilograms(val value: Double)
fun describe(weight: Kilograms) = weight.value.toString() + " kg"
fun main() {
println(describe(Kilograms(72.5)))
}Doğrulanmış Dizeler
Boş olmayan bir e-posta gibi değişmezleri garanti etmek için bir değer sınıfını init bloğuyla birleştirin.
@JvmInline
value class Email(val value: String) {
init {
require(value.contains("@")) { "invalid email" }
}
}
fun main() {
println(Email("a@b.com").value)
}Davranış İçeren Para
Parayı en küçük birimde temsil edip işlemler ekleyerek kayan noktalı para birimi hatalarından kaçının.
@JvmInline
value class Cents(val value: Long) {
operator fun plus(other: Cents) = Cents(value + other.value)
fun format() = "$" + value / 100.0
}
fun main() {
val total = Cents(1500) + Cents(250)
println(total.format())
}Kendini Belgeleyen Programlama Arayüzleri
Değer sınıfları kullanan bir işlev imzası, üç bağımsız tamsayı kullanandan çok daha açıktır.
@JvmInline
value class Width(val px: Int)
@JvmInline
value class Height(val px: Int)
fun area(w: Width, h: Height) = w.px * h.px
fun main() {
println(area(Width(4), Height(5)))
}Hassas Verileri Sarmalama
Bir değer sınıfı, ham değere erişimi korurken günlüklerdeki gizli bilgileri maskelemek için toString yöntemini geçersiz kılabilir.
@JvmInline
value class Token(val value: String) {
override fun toString() = "Token(***)"
}
fun main() {
val t = Token("abc123")
println(t) // masked
println(t.value) // real value when needed
}Aralıkları Zorunlu Kılma
Aralık kurallarını tek bir yerde kapsüllemek için değer sınıflarını kullanın; böylece hiçbir yerde geçersiz durumlar oluşturulamaz.
@JvmInline
value class Rating(val stars: Int) {
init {
require(stars in 1..5) { "stars must be 1..5" }
}
}
fun main() {
println(Rating(4).stars)
}Akıllı Kurucular
Bir değer sınıfını, geçersiz girdide null döndüren eşlikçi bir fabrika işleviyle eşleştirin; böylece beklenen başarısızlıklar için özel durum oluşturmaktan kaçının.
@JvmInline
value class Age(val value: Int) {
companion object {
fun of(n: Int): Age? = if (n in 0..150) Age(n) else null
}
}
fun main() {
println(Age.of(30)?.value)
println(Age.of(-5))
}Kalıpların Özeti
Yaygın değer sınıfı kalıpları:
- Karıştırılmaları önlemek için türlendirilmiş kimlikler
- Ölçü birimleri
initile doğrulanmış ilkel değerler- İşleçler aracılığıyla alan işlemleri
- Maskelenmiş hassas değerler
Düşük Maliyetli Güvenlik
Değer sınıfları genellikle satır içine alındığından, tüm bu alan açıklığını ve güvenliğini neredeyse sıfır çalışma zamanı maliyetiyle elde edersiniz. Geçersiz durumları temsil edilemez kılmanın kolay bir yoludur.
Kısa Bir Kontrol
Değer sınıflarının kullanım alanlarını ne kadar anladığınızı sınayın.
Özet
Değer sınıflarının pratik kullanım alanlarını gördünüz:
- Türlendirilmiş kimlikler, birimler ve doğrulanmış dizeler
- Para ve alan işlemleri
- Gizli bilgileri maskeleme ve akıllı kurucular
Sırada: değer sınıflarının sınırlamaları.
Sıkça Sorulan Sorular
“Kullanım Alanları” dersi ücretsiz mi?
Evet — “Kullanım Alanları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Kullanım Alanları” dersinde ne öğreneceğim?
Alan modelleme Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Kullanım Alanları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tür Takma Adları
- Satır İçi Değer Sınıfları
- Kullanım Alanları
- Sınırlamalar