Ek Açıklamaları Tanımlama
Özel ek açıklamalar oluşturun
Ek Açıklamaları Tanımlama, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 2. 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.
Anotasyon Tanımlama
Bir anotasyonu annotation class anahtar sözcükleriyle tanımlarsınız. En basit anotasyon veri taşımaz ve işaretleyici görevi görür.
annotation class Beta
@Beta
fun newFeature() = "experimental"
fun main() {
println(newFeature())
}Anotasyon Parametreleri
Anotasyonlar, kurucu parametreleri aracılığıyla veri taşıyabilir. İzin verilen türler sınırlıdır: ilkel türler, String, numaralandırmalar, diğer anotasyonlar, KClass ve bunların dizileri.
annotation class ApiVersion(val value: Int)
@ApiVersion(2)
fun endpoint() = "v2"
fun main() {
println(endpoint())
}@Target
@Target, anotasyonunuzun nerelere uygulanabileceğini sınırlar. CLASS, FUNCTION veya PROPERTY gibi bir ya da daha fazla AnnotationTarget değeri verirsiniz.
@Target(AnnotationTarget.FUNCTION)
annotation class Loggable
@Loggable
fun process() = "processing"
fun main() {
println(process())
}@Retention
@Retention, anotasyonun ne kadar süreyle korunacağını denetler:
SOURCE— derleyici tarafından atılırBINARY— sınıf dosyasında tutulur, ancak yansıtma tarafından görülemezRUNTIME— tutulur ve yansıtma tarafından görülebilir (varsayılan)
@Retention(AnnotationRetention.RUNTIME)
annotation class Important
@Important
class Order
fun main() {
println("Important is readable at runtime")
}Birden Çok Hedef
Bir anotasyonun birden fazla yerde kullanılmasına izin vermek için birkaç hedefi listeleyin. Burada anotasyon hem sınıflarda hem de işlevlerde çalışır.
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
annotation class Audited
@Audited
class Account {
@Audited
fun withdraw() = "ok"
}
fun main() {
println(Account().withdraw())
}Varsayılan Parametre Değerleri
Anotasyon parametrelerinin varsayılan değerleri olabilir; böylece çağıranlar bu parametreleri belirtmeyebilir. Bu, yaygın durumlarda kodu kısa tutar.
annotation class Cache(val seconds: Int = 60)
@Cache
fun cheap() = 1
@Cache(seconds = 300)
fun expensive() = 2
fun main() {
println("" + cheap() + " " + expensive())
}Dizi Parametreleri
Dizi türlerini kullanabilirsiniz. Anotasyon kullanımında değerleri [ ... ] dizi sabiti söz dizimiyle verin.
annotation class Roles(val names: Array<String>)
@Roles(["admin", "editor"])
fun restricted() = "secret"
fun main() {
println(restricted())
}@Repeatable
Varsayılan olarak bir anotasyon, her öğede yalnızca bir kez görünebilir. Birden çok kez uygulamak için onu @Repeatable ile işaretleyin.
@Repeatable
annotation class Tag(val value: String)
@Tag("db")
@Tag("cache")
fun layered() = "ok"
fun main() {
println(layered())
}İç İçe Anotasyon Parametreleri
Bir anotasyon parametresinin kendisi de başka bir anotasyon olabilir; bu sayede yapılandırılmış üstveri oluşturabilirsiniz.
annotation class Author(val name: String)
annotation class Module(val owner: Author)
@Module(Author("Grace"))
class Payments
fun main() {
println("Nested annotation metadata defined")
}İyi Anotasyonlar Tasarlama
İyi tasarlanmış bir anotasyon:
- Açık ve tek bir amaca sahiptir
- Yanlış kullanımı derleme hatasına dönüştürmek için
@Targetayarlar RUNTIMEsaklamasını yalnızca yansıtma gerektiğinde kullanır- Mantıklı varsayılanlar sağlar
Tanımdan Kullanıma
Bir anotasyonu tanımlamak işin yalnızca yarısıdır. Tek başına etkisiz bir üstveridir. Bir şeyin onu okuması gerekir — genellikle çalışma zamanında yansıtma veya derleme zamanında bir anotasyon işlemcisi. Yakında yansıtmayı kullanacaksınız.
Kısa Sınama
Anotasyon tanımlama konusundaki anlayışınızı sınayın.
Özet
Anotasyonları tanımlamayı öğrendiniz:
- Parametreli
annotation class - Yerleşimi sınırlamak için
@Target - Yaşam süresini denetlemek için
@Retention @Repeatableve varsayılan değerler
Sırada: türleri yansıtmayla incelemek.
Sıkça Sorulan Sorular
“Ek Açıklamaları Tanımlama” dersi ücretsiz mi?
Evet — “Ek Açıklamaları Tanımlama” 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.
“Ek Açıklamaları Tanımlama” dersinde ne öğreneceğim?
Özel ek açıklamalar oluşturun 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 2. dersidir.
“Ek Açıklamaları Tanımlama” 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
- Ek Açıklamaları Kullanma
- Ek Açıklamaları Tanımlama
- Yansımanın Temelleri
- Uygulamalı Yansıma