تغییر در اجرای حلقههای for در Go 1.22 از اشکالات اشتراکگذاری تصادفی جلوگیری میکند. بهینه سازی زمان اجرا نیز در به روز رسانی افزایش یافته است.
زبان Go (golang) Google به نسخه ۱.۲۲ رسیده است و تغییراتی را در حلقههای for
از جمله حل مشکلی که خطر اشتراکگذاری تصادفی متغیرهای حلقه را به همراه دارد، ایجاد میکند.
Go 1.22 منتشر شده در ۶ فوریه، از go.dev قابل دانلود و نصب است. یادداشتهای انتشار برای Go 1.22 را میتوانید در وبسایت پروژه پیدا کنید.
با Go 1.22، تیم Go آنچه را که حلقه for
“gotcha” نامیده می شود، حل کرده است که منجر به اشتراک گذاری تصادفی متغیرهای حلقه می شود. در Go 1.22، هر تکرار از حلقه، متغیرهای جدیدی را برای جلوگیری از اشکالات اشتراک گذاری تصادفی ایجاد می کند. در تغییر دوم، حلقههای for
در Go اکنون میتوانند از اعداد صحیح متغیر باشند.
همچنین در Go1.22، بهینه سازی زمان اجرا عملکرد CPU را ۱٪ تا ۳٪ بهبود می بخشد در حالی که سربار حافظه اکثر برنامه های Go را تا حدود ۱٪ کاهش می دهد. مجازیسازی بهبودیافته در ساختهای بهینهسازی هدایتشده پروفایل (PGO) نیز مشخص شده است که امکان ارسال استاتیک فراخوانهای روش رابط را فراهم میکند. اکثر برنامه ها با فعال کردن PGO شاهد بهبود ۲٪ تا ۱۴٪ خواهند بود. PGO در Go 1.21 معرفی شد که در آگوست ۲۰۲۲ وارد شد.
Go 1.22 همچنین بهبودهایی را در کتابخانه استاندارد به ارمغان می آورد. بسته math/rand/v2
یک API سازگارتر و تمیزتر ارائه میکند و از الگوریتمهای تولید شبه تصادفی با کیفیت بالاتر و سریعتر استفاده میکند. همچنین، الگوهای مسیریابی HTTP که توسط net/http.ServeMux
استفاده میشود، اکنون کارتها و روشهای وحشی را میپذیرند.
جاهای دیگر در Go 1.22:
- فرمانهای Go در فضاهای کاری اکنون میتوانند از دایرکتوری
فروشنده
حاوی وابستگیهای فضای کاری استفاده کنند. - واسط کاربری وب ابزار
trace
به عنوان بخشی از کار برای پشتیبانی از ردیاب جدید، حل چندین مشکل و بهبود خوانایی صفحات فرعی مختلف، به روز شده است. - رفتار ابزار
vet
برای مطابقت با معنای جدید متغیرهای حلقه در Go 1.22 تغییر کرده است. همچنین،vet
اکنون یک تماس غیر معوق را بهtime.Since (t)
در یک عبارتdefer
گزارش میکند. - در macOS در معماری ۶۴ بیتی، زنجیره ابزار Go اکنون به طور پیش فرض فایل های اجرایی مستقل از موقعیت تولید می کند.
- Go 1.22 یک پورت آزمایشی به OpenBSD در PowerPC 64 بیتی بزرگ endian اضافه می کند.
پست های مرتبط
برو به رفع مشکل حلقه
برو به رفع مشکل حلقه
برو به رفع مشکل حلقه