בדיקת מפתחות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 4 מתוך 63.
containsKey בודקת אם מפתח קיים. containsValue מחפשת ערכים במקום זאת. בדיקת שייכות באמצעות key in map בודקת גם היא מפתחות. יש להבחין בין השאלות האלה כאשר למפתח ולערך יש אותו טקסט.
בתוך main:
val codes = mapOf("red" to "R")
println("R" in codes)R הוא ערך, לא מפתח. המפתח היחיד הוא red.
השתמשו ב־containsKey או ב־in עבור מפתחות; השתמשו ב־containsValue עבור ערכים.
אתגר
בינוניהשלימו את keyExists עם הפרמטרים stock: Map<String, Int>, key: String. החזירו האם המפתח קיים, גם כאשר הערך המאוחסן שלו הוא אפס.
אלא אם צוינו לעיל גבולות מחמירים יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים השלמים והערכים השלמים באוספים הם בין -1000 ל-1000. טקסט שמסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Boolean. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על התבנית של מספר האיברים והאיברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסוגריים המרובעים הסטנדרטי של Kotlin; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun keyExists(stock: Map<String, Int>, key: String): Boolean {
// כתוב את הפתרון שלך כאן.
return false
}
fun main() {
val stockCount = readln().toInt()
val stock = mutableMapOf<String, Int>()
for (i0 in 0 until stockCount) {
val stockKey = readln()
val stockValue = readln().toInt()
stock[stockKey] = stockValue
}
val key = readLine().orEmpty()
println(keyExists(stock, key))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין