Dart 2.12 שוחרר, עם בטיחות null ו-C הדדית

גוגל פרסמה את Dart 2.12, גרסה חדשה של השפה המשמשת לבניית אפליקציות ב-Flutter. המהדורה מגיעה לצד Flutter 2.0.

עם ה שחרור של Flutter 2.0, גוגל גם מביאה את Dart 2.12 ליציבה. למקרה שלא ידעתם, Dart היא השפה שבה משתמש Flutter. זוהי שפה מבוססת TypeScript אבל מגיעה עם כמה תוספות של תכונות שפה, כולל אלו שאני עומד לעבור עליהם.

בטיחות אפס

בטיחות אפסית היא תכונת שפה די מצוינת. זה מאלץ אותך לשקול אם משתנה אי פעם יהיה ריק, ולהתמודד באופן מפורש עם מצבי ריק פוטנציאליים, ובמקביל מאפשר לך להבטיח שמשתנים ספציפיים לעולם לא יהיו אפסיים.

ב-Dart 2.12, יש כעת תמיכה מלאה ב-null-safety, עם תחביר דומה לסוויפט וקוטלין. יש אפילו ליהוק חכם, שבו אם Dart יודע בוודאות שמשתנה שניתן לבטל בדרך כלל לא יכול להיות null, הוא יטיל אותו באופן מרומז לצורה שאינה ניתנת ל-null.

מכיוון ש-null-safety היא שינוי (מאוד) שובר, תכונה זו היא בחירה. אם תעדכן ל-Dart 2.12, הקומפילציה שלך לא תישבר, ולא תצטרך להשקיע שעות בהוספת רמזים לבטלות לכל דבר. אתה יכול אפילו להשתמש בתלות ב-null-safe אם הפרויקט שלך עדיין לא null-safe.

ברגע שתחליט לעבור, תוכל להשתמש בכלי ההעברה המובנה (חץ לנדוד) ו/או ה מדריך הגירה כדי להגדיר הכל.

כמו כן, בעוד ש-null-safety כלולה ב-Dart 2.12, אם תיצור פרויקט Flutter חדש, null-safety לא תופעל מהקופסה. תצטרך להפעיל אותו באופן ידני. פרויקטים חדשים של Dart יופעלו ב-null-safety.

ממשק פונקציות זרות

למרות שההתמקדות של Dart (ושל Flutter) היא על תאימות מלאה בין פלטפורמות, עדיין יש כמה דברים שפשוט צריכים להיעשות באופן מקורי. כדי להקל על פעולות מקוריות, ל-Dart יש ממשק פונקציות זר, או FFI. ה-FFI מאפשר לך לקיים אינטראקציה עם קוד C מ-Dart מבלי שתצטרך לפנות לקריאות API מוזרות מבוססות מחרוזות או לשיטות פעולה הדדיות מגושמות אחרות.

ועם Dart 2.12, ה-FFI כעת יציב, כלומר הוא מוכן לשימוש בפרויקטים של ייצור והוא שלם לרוב עם תכונה.

עם זאת בחשבון, ישנם כמה שינויים ב-FFI, כולל כמה שינויים שוברים.

רוב ההתמקדות במהדורה זו הייתה על האופן שבו ניתן להשתמש במבנים עם Dart ו-C. ראשית, כעת תוכל להעביר מבנים בקוד C שלך לפי הפניה וערך, כאשר בעבר רק הפניות נתמכו. תכונה חשובה נוספת היא תמיכה במבנים מקוננים, שלא הייתה קיימת לפני גרסה זו.

עכשיו לשינויים הפורצים. אם השתמשת ב-FFI, ייתכן שתצטרך לעדכן את הקוד שלך כך שיעבוד עם 2.12. עם גרסה זו של FFI, אינך יכול עוד ליצור מבנים ריקים. אם אתה צריך אחד מסיבה כלשהי, אתה יכול להשתמש בסוג החדש "אטום". ישנם גם כמה שינויים באופן שבו חלק מהפונקציות המובנות של FFI פועלות, מה שאתה יכול לקרוא על כאן.

לבסוף, יש חבילה חדשה עבור ה-FFI המאפשרת ליצור עטיפות FFI מקובצי כותרת C קיימים, הנקראת ffigen. אם יש לך הרבה קוד C שאתה צריך להשתמש בו, עם הרבה שיטות API, זה יהיה די מועיל. גם אם כמות קוד ה-C שברשותך קטנה, זו תכונת נוחות נחמדה.


וזה פחות או יותר זה עבור Dart 2.12. עם תוספת של בטיחות אפסית וספריית יכולת פעולה הדדית C יציבה, Dart הופך לשפה עשירה מאוד בתכונות. ספר לנו מה אתה חושב על Dart 2.12 בתגובות!