گوگل پیش نمایشی از نسخه جدید زبان برنامه نویسی Go منتشر کرده است. نسخه 1.18 قابلیت هایی را برای برنامه نویسی "عمومی" با انواع به اصطلاح "پارامتری" اضافه می کند.
به قول خودشان، این مهمترین و بزرگترین تغییر زبان برنامهنویسی از زمان انتشار نسخه 1 Go است. ایده ژنریک این است که اکنون با تغییر انواع، قابلیت نمایش توابع و ساختارهای داده را میدهد. این «عمومی» را که با تعریف نوع رابط به عنوان راهی برای انتزاع دادههای واقعی به یک تابع مجاز است، کنار میگذارد.
گوگل نشان می دهد که توسعه دهندگان Go باید بدانند که این عملکرد بدون شک منجر به باگ های جدیدی می شود. بنابراین آنها باید با احتیاط به این "عمومی" نزدیک شوند.
سایر عملکردها در Go 1.18 Beta
علاوه بر عملکرد فوق، پیش نمایش جدید همچنین دارای پشتیبانی داخلی برای نوشتن تست های مبتنی بر فاز است. این تستها میتوانند بهطور خودکار ورودیهایی را پیدا کنند که باعث از کار افتادن برنامهها یا برگرداندن پاسخهای نامعتبر میشوند. Go 1.18 Beta همچنین یک "حالت فضای کاری Go" جدید را ارائه می دهد. این به برنامه نویسان اجازه می دهد تا با چندین ماژول Go به طور همزمان کار کنند. به گفته گوگل، این به ویژه برای پروژه های بزرگ مفید است.
علاوه بر این، نسخه 1.18 بتا عملکردی را با دستور go version -m توسعه یافته اضافه می کند. این دستور اکنون جزئیات را به عنوان پرچم های کامپایلر ذخیره می کند. یک برنامه اکنون می تواند جزئیات ساخت خود را با دستور debug.ReadBuildInfo پرس و جو کند.
همچنین، کنوانسیون تماس مبتنی بر ثبت بیشتر، که از Go 1.17 در دسترس است، در پیش نمایش اضافه شده است. در حالی که در نسخه قبلی این عملکرد فقط برای افزایش سرعت کد Go در سیستم های x86 و x64 مناسب بود، اکنون برای سیستم های مبتنی بر ARM64 و PPC64 نیز مناسب است. این باید تا 20 درصد سرعت بیشتری ارائه دهد.