העברת פונקציות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 28 מתוך 63.
פונקציה מסדר גבוה מקבלת ערך של פונקציה או מחזירה אחד. הכריזו על פרמטר של פונקציה עם טיפוס פונקציה, ואז קראו לה בתוך פונקציית העזר. אם הארגומנט האחרון הוא למבדה, Kotlin מאפשרת להציב את הסוגריים המסולסלים שלה אחרי סוגריי הקריאה.
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}בתוך main:
println(applyTwice(2) { it + 3 })הקריאה הראשונה משנה שתיים לחמש; השנייה משנה חמש לשמונה.
אפשר לקרוא שוב ושוב לפרמטר של פונקציה עם תוצאות ביניים.
אתגר
בינוניהשלימו את twiceDouble עם הפרמטרים value: Int. השתמשו בפונקציית העזר שסופקה applyTwice ובפונקציית למבדה שמכפילה ב־2. החזירו את התוצאה לאחר החלת פעולת ההכפלה פעמיים.
אלא אם צוינו למעלה גבולות מחמירים יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים הם בטווח שבין -1000 ל־1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Int. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. ה־main שסופקה מדפיסה את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}
fun twiceDouble(value: Int): Int {
// כתבו כאן את הפתרון שלכם.
return 0
}
fun main() {
val value = readln().toInt()
println(twiceDouble(value))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין