
init היא הבנאי של הטיפוס, ועוזרת לתת ערכים התחלתיים למופע. בסטרקט הקומפיילר מייצר בנאי בעצמו, ורק כשרוצים להוסיף לוגיקה משלנו כותבים init ידנית.init עם פרמטרים, ובתוכו מציבים את הערכים לתכונות בעזרת self, למשל self.phone = phone.init משלכם.הטקסט המלא של הדקות הראשונות בהרצאה «פעולת בנאי - init עבור structs» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים אנחנו רוצים לדבר על פונקציה אחרונה וחשובה לגבי אסטרקטים שנקראת init לצורך העניין אני לוחץ פה קליק ימני ועושה new file ואנחנו יוצרים אסטרקט נוסף בואו נקרא לאסטרקט שלנו איש קשר נקרא לו contact והאסטרקט שלנו בדומה לאסטרקטים קודמים יכיל מספר תכונות
סטרקט קונטקט עכשיו לקונטקט יש מספר טלפון והוא יהיה סטרינג אז בוא נגיד פון בנוסף יש לנו את הניים של הקונטקט נניח first name וגם last name עד כאן זה בעצם תכונות כמו שאתם מכירים היום אנחנו רוצים לדבר על פונקציה שנקראת אינית אם אתם מגיעים משפות אחרות אז הפונקציה תהיה מוכרת לכם היא בעצם פונקציית בנאי פונקציה
שעוזרת לתת ערכים התחלתיים לאובייקט אנחנו אנחנו יכולים להגדיר לעצמנו בנאי, אתם רואים שזה משהו שמור בסוויפט, ונניח שאני מייצר לעצמי בנאי שלא מקבל פרמטרים, אבל נשים פה כל מיני ערכי ברירת מחדל, פון שווה, first name שווה, כל מיני ערכי ברירת מחדל, תכף נמלא את זה.
אז בוא נאמר פלוני, אלמוני, ולגבי הפון נשים פה איזשהו מספר טלפון. אז פונקציית בנאי היא פונקציה שעוזרת לנו למעשה להתחיל את הערכים של התכונות, בסדר?
לזה קראנו תכונות אז הבנאי עוזר לי להתחיל אותן יפה פונקציית בנאי עכשיו בדרך כלל אתם לא תרצו פונקציית בנאי כזאת שנותנת לנו ערכי ברירת מחדל מוזרים אם כבר היינו יכולים ישר פה להכריז שהמספר הדפולטי הוא 0 0 0 וזה גם היה יכול לתפוס מה שאנחנו כן רוצים לעשות הרבה פעמים זה לייצר פונקציית בנאי שמקבלת פרמטרים למשל היא מקבלת phone
מקבלת first name ומקבלת last name ומה שהיא עושה זה לשמור אותם פה למעלה בעצם הפונקציית בנאי שלנו צריכה להגיד self נקודה phone הפון שברמת הסטראק שווה לפון שקיבלתי כפרמטר מהפעולה ואותו דבר לגבי הפרסט ניים והלאסט ניים בדיוק באותו אופן יפה
שווה לאסט ניים נכון מצוין יפה עכשיו העניין הוא שקודם השתמשנו בפונקציה כזאת רק בלי לציין את זה אני יכול כלומר let c שווה קונטקט ולהכניס פה את כל הפרמטרים נכון לגבי first name בוא נכניס פה איזשהו שם נועם דקל שיהיה אוקיי עכשיו אתם רואים את הפונקציית בנאי הזאת אני יכול לא לרשום אותה בכלל ועדיין כל מה שכתבתי כאן יהיה בדיוק ובדיוק אותו
דבר אתם רואים לא כתבתי את הפונקציה כן כתבתי את הפונקציה זה עובד הסיבה שזה עובד היא שעבור סטראקטים אני מקבל מסוויפט בנאי למעשה בחינם הקומפיילר מייצר עבורי את הבנאי הזה ואני לא חייב לכתוב אותו אז מתי אנחנו כן נכתוב אותו אולי במקרים שבהם תרצו להוסיף דברים משלכם בסדר נגיד להוסיף