מפות מקוננות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 9 מתוך 63.
ערך במפה יכול בעצמו להיות מפה. כל חיפוש עלול להיכשל, לכן שלבו קריאה בטוחה עם ברירת מחדל סופית. עדכונים ניתנים לשינוי require ניתנות לשינוי ברמה שבה מתבצע השינוי.
בתוך main:
val school = mapOf("Ada" to mapOf("math" to 9))
println(school["Ada"]?.get("art") ?: -1)Ada קיימת, אבל המפתח הפנימי art לא קיים, ולכן נעשה שימוש בערך החלופי.
השתמשו בגישה בטוחה בכל רמה במפה שעשויה להיעדר.
אתגר
בינוניהשלם את nestedScore עם הפרמטרים name: String, subject: String. השתמש ברשומות הקבועות Ada: math 9, art 7; Bo: math 6. החזר את הציון המבוקש או -1 אם השם או המקצוע אינם קיימים.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכי מספרים שלמים באוספים נמצאים בין -1000 ל-1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזר ערך מסוג Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את ערך ההחזרה ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסוגריים המרובעים הסטנדרטית של Kotlin; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun nestedScore(name: String, subject: String): Int {
// כתבו כאן את הפתרון שלכם.
return 0
}
fun main() {
val name = readLine().orEmpty()
val subject = readLine().orEmpty()
println(nestedScore(name, subject))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין