Require ile Doğrulama
Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 54 / 63.
require(condition) bir işlev bağımsız değişkeni sözleşmesini denetler. Koşul false ise IllegalArgumentException fırlatır. Sondaki lambda bir hata mesajı sağlayabilir. Beklenen bu hatayı çağıran tarafta yakalamak, geçersiz girdiyi tanımlı bir sonuca dönüştürmenizi sağlar.
fun ticketCost(count: Int): Int {
require(count >= 0) { "count must be nonnegative" }
return count * 5
}main içinde:
try {
println(ticketCost(-2))
} catch (error: IllegalArgumentException) {
println("invalid")
}Başarısız olan bağımsız değişken gereksinimi, maliyet hesaplanmadan önce hata fırlatır.
require, koşulu false olduğunda IllegalArgumentException fırlatır.
Görev
Ortacount: Int parametresini kullanarak validatedCost işlevini tamamlayın. Negatif olmayan bir count gerektiren, sağlanan maliyet yardımcı işlevini kullanın. Başarılı olursa maliyeti bir dize olarak döndürün; IllegalArgumentException fırlatılırsa invalid döndürün. count -1000 ile 1000 arasındadır.
Yukarıda daha sıkı sınırlar belirtilmedikçe koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı gösterimler içerebilir.
String türünde bir değer döndürün. Sağlanan girdi/çıktı kodunu koruyun. Kod, skaler bağımsız değişkenleri satır başına bir tane okuyup işler; bir liste, sayısını ve ardından öğelerini içerir; bir eşleme ise giriş sayısını ve ardından her anahtar ile değeri içerir. İç içe listeler, her satır için sayı ve öğeler biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından tek bir satır sonunu yazdırır. Listeler Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.
Kendin dene
fun cost(count: Int): Int {
require(count >= 0) { "count must be nonnegative" }
return count * 5
}
fun validatedCost(count: Int): String {
// Çözümünüzü buraya yazın.
return ""
}
fun main() {
val count = readln().toInt()
println(validatedCost(count))
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Map'ler Bölüm 1
Map'ler OluşturmaGüvenli Map AramalarıMap'leri GüncellemeAnahtarları Kontrol EtmeTekrar - Stok Masası4İç İçe Koleksiyonlar
Liste ListeleriSatırlarda GezinmeSatır Özetleriİç İçe Listeleri DüzleştirmeTekrar - Oturma Sıraları7Koleksiyon İşlem Hatları
Map ile DönüştürmeDeğerleri FiltrelemeKoleksiyon Kurallarını Test EtmeFold ile BiriktirmeTekrar - Onaylanan Toplamlar2Map'ler Bölüm 2
Map Girdileri Üzerinde YinelemeAnahtarlar ve DeğerlerFrekans Map'leriİç İçe Map'lerTekrar - Frekans Raporu5Proje - Kişi Defteri
Kişileri KaydetmeKişileri Bulma8Sıralama ve Gruplama
Bir Anahtara Göre SıralamaKarşılaştırmaları BirleştirmeDeğerleri GruplamaAnahtara Göre İlişkilendirmeÖzet - Uzunluk Sıralaması11Hata Yönetimi
İstisnalar Olmadan AyrıştırmaBelirli Hataları Yakalamaİfade Olarak TryRequire ile DoğrulamaTekrar - Doğrulanmış Miktarlar3Kümeler ve Üyelik
Kümeler OluşturmaKümeleri GüncellemeKüme İşlemleriAlt Küme KontrolleriÖzet - Etkinlik Konukları6Fonksiyon Değerleri
Lambda YazmaFonksiyon TürleriFonksiyonları GeçirmeYakalanan DeğişkenlerÖzet - Yapılandırılabilir PuanKendi başına pratik yap: Kotlin playground