מהי קורוטינה?
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 48 מתוך 54.
חשוב על משחק בווידאו. אפשר להשהות אותו בכל רגע, ללכת לעשות משהו אחר, ואז לחזור ולהמשיך בדיוק מהמקום שבו הפסקת. קורוטינות ב-Lua פועלות באופן דומה.
קורוטינה היא כמו פונקציה מיוחדת שיכולה להשהות את עצמה באמצע הביצוע ואז להמשיך מאוחר יותר בדיוק מאותה נקודה. בניגוד לפונקציות רגילות שרצות מההתחלה ועד הסוף בלי לעצור, קורוטינות מאפשרות לך לשלוט במועד ההשהיה וההמשך שלהן.
יכולת זו מאפשרת משהו שנקרא ריבוי משימות שיתופי. במקום להריץ כמה משימות בדיוק באותו הזמן, קורוטינות מאפשרות לך לעבור מרצונך בין משימות שונות.
קורוטינה אחת רצה לזמן מה, משהה את עצמה, קורוטינה אחרת ממשיכה, וכך הלאה. כל קורוטינה משתפת פעולה בכך שהיא מחליטה מתי להחזיר את השליטה.
קורוטינות שימושיות כשצריך לפרק פעולות ממושכות, לנהל מערכות מבוססות תורות או ליצור רצפים שצריכים לזכור את מצבם בין קריאות. בשיעורים הבאים תלמדו איך ליצור, להשהות ולחדש קורוטינות ב-Lua.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאים3מושגים מתקדמים בפונקציות
החזרת ערכים מרוביםפונקציות עם מספר משתנה של ארגומנטים (...)פונקציות כערכים ממדרגה ראשונהפונקציות אנונימיותמהי סגירה (Closure)?סיכום – מטפל אירועים פשוט9קורוטינות למתחילים
מהי קורוטינה?יצירה וחידוש של קורוטינההשהיה באמצעות coroutine.yield()חידוש והשהיהבדיקת מצב הקורוטינהסיכום – מחולל מספריםסיכום – חישובי וקטוריםתרגלו בעצמכם: קומפיילר Lua אונליין