Go 1.22 כבר שוחרר, למד על התכונות והשיפורים החדשים שלו

גולנד

Go היא שפת תכנות מקבילה, עם הקלדה סטטית בהשראת תחביר C.

הגירסה החדשה של Go 1.22, מגיע שישה חודשים לאחר גרסה 1.21, עם מספר שינויים בולטים בערכת הכלים, זמן הריצה, שיפורי אופטימיזציה, שיפורי מהדר וספריות.

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

התכונות החדשות העיקריות של Go 1.22

בגרסה החדשה הזו, שמוצגת מ-Go 1.22, מדגיש שני שינויים בלולאות "עבור".כמו בעבר, משתנים שהוכרזו על ידי לולאת for נוצרו פעם אחת ועודכנו בכל איטרציה. ב-Go 1.22, כל איטרציה של הלולאה יוצרת משתנים חדשים כדי למנוע שגיאות שיתוף בשוגג, בנוסף נוספה תמיכה ניסיונית (GOEXPERIMENT=rangefunc) עבור פונקציות טווח עבור לולאות, המאפשר לך לציין פונקציה כאיטרטור ו פתר בעיה ארוכת שנים עם for loops מה שגרם לקריאות Coroutine לשתף משתני לולאה בין איטרציות. בנוסף, עבור לולאות יכול כעת לעבור דרך מספרים שלמים. לדוגמה:

יבוא ראשי חבילה "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 ממריא!") }

שינוי בולט נוסף בגרסה החדשה הזו הוא הצגת ה- היכולת להשתמש בספרייה «מוכר« שמכיל את התלות של סביבת העבודה. עכשיו הפקודות אתה יכול להשתמש בספרייה הזו, שנוצרת עם `לך לעבוד בספק` ומשמש בפקודות build כאשר ` מוגדר-מוד` ב «מוכר«, זהו ערך ברירת המחדל כאשר קיימת ספריה «מוכר» במרחב העבודה.

חשוב לציין כי הפונקציונליות של `לך תביא` אינו נתמך עוד מחוץ למודול במצב GOPATH עם זאת, פקודות build אחרות כמו `לכו לבנות` ו`לכו לבחון` הם ימשיכו לעבוד ללא הגבלת זמן עבור תוכניות GOPATH מדור קודם. יתר על כן, הפקודה 'לך mod init' לא ינסה עוד לייבא דרישות מודול מקובצי תצורה של «"מוכר" (כמו Gopkg.lock).

Go 1.22 מציג את א חבילה חדשה io/לא בטוח המספק פונקציונליות לעבודה עם מצביעים וזיכרון לא בטוח. חבילה זו מספקת שיטות להמרת מצביעים לסוגים בטוחים ולא בטוחים וממנו, וכן לביצוע פעולות העתקת זיכרון ללא בדיקת גבולות.

העבודה נמשכה לכלול אופטימיזציות במהדר על סמך תוצאות ה-pפרופיל קוד PGO, ואת זה כעת המהדר משתמש בכלי דה-וירטואליזציה כדי להחליף קריאות עקיפות של שיטות שונות עם ביצוע בלוקים מורחבים. כאשר PGO הופעל, השינוי הנוסף שיפר את הביצועים של רוב התוכניות ב-2% עד 14%.

בגרסת עבור על Windows, תוכניות המקשרות או טוענות ספריות לך לבנות עם -buildmode=c-archive o -buildmode=c-shared כעת יכול להשתמש ב-API של Windows (ETW) של רישום אירועים דרך החבילות החדשות זמן ריצה/מעקב y הוק עקבות, אשר מיישמים את פרוטוקול איסוף מעקב אחר אירועים של Go כספק ETW.

משאר השינויים הבולטים:

  • הפקודה לך לבדוק - כיסוי מדפיס כעת סיכומי כיסוי עבור חבילות מכוסות שאין להן קבצי בדיקה משלהן.
  • OS/exec, נוספה היכולת להגדיר תכונות הקשר, מה שמאפשר לך להגדיר ערכים כגון ספריית העבודה, משתני סביבה ומתאר קובץ קלט/פלט עבור פקודות מבוצעות.
  • ניהול זיכרון אופטימלי בזמן ריצה, וכתוצאה מכך עלייה של 1-3% בביצועים והפחתה של 1% בצריכת הזיכרון עבור רוב היישומים.
  • El paquete net/http, הפונקציה נוספה CloseIdleConnections ללקוח HTTP, שסוגר את כל החיבורים הבלתי פעילים שבהם השתמש הלקוח לאחרונה
  • יישום ניסיוני משופר (GOEXPERIMENT=newinliner) של מנגנון הכנסת השיחות התווסף לקומפיילר, המשתמש בהיוריסטיקה כדי להפריד בין פעולות חשובות לבין לא חשובות.
  • החבילה נוספה » מתמטיקה/רנד/v2 » לספרייה הסטנדרטית, המציעה API עקבי יותר ומשתמשת באלגוריתמים מהירים יותר ליצירת מספרים פסאודו אקראיים.
  • El paquete net/http.ServeMux נוספה את היכולת לציין שיטות ומסכות בתבניות.

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.