انتشار زبان برنامه نویسی Go 1.22 ارائه شده است که توسط گوگل با مشارکت جامعه به عنوان یک راه حل ترکیبی که عملکرد بالای زبان های کامپایل شده را با مزایای زبان های برنامه نویسی مانند سهولت در نوشتن کد ترکیب می کند ارائه شده است. ، سرعت توسعه و حفاظت از خطا. کد پروژه تحت مجوز BSD توزیع شده است.
نحو Go بر اساس عناصر آشنای زبان C با برخی وامگیریهایی از زبان اوبرون است. زبان کاملاً مختصر است، اما کد به راحتی قابل خواندن و درک است. کد Go در فایلهای اجرایی باینری مجزا کامپایل میشود که به صورت بومی و بدون استفاده از ماشین مجازی اجرا میشوند (ماژولهای نمایهسازی، اشکال زدایی و سایر زیرسیستمهای تشخیص مشکل زمان اجرا به عنوان اجزای زمان اجرا یکپارچه شدهاند)، که امکان عملکرد قابل مقایسه با برنامههای C را فراهم میکند.
این پروژه در ابتدا با توجه به برنامه نویسی چند رشته ای و عملیات کارآمد بر روی سیستم های چند هسته ای، از جمله ارائه ابزارهای سطح اپراتور برای سازماندهی محاسبات موازی و تعامل بین روش های موازی اجرا شده، توسعه یافته است. این زبان همچنین محافظت داخلی در برابر بلوک های حافظه بیش از حد تخصیص داده شده را فراهم می کند و امکان استفاده از جمع کننده زباله را فراهم می کند.
از جمله تغییرات نسخه جدید:
- پشتیبانی از تعریف محدوده اعداد صحیح به حلقه های "for" اضافه شده است، به عنوان مثال، برای تکرار در مقادیر از 0 تا 9، اکنون می توانید از حلقه "for i := range 10 {...}" استفاده کنید.
- پشتیبانی آزمایشی (GOEXPERIMENT=rangefunc) برای توابع محدوده به حلقههای for اضافه شد که به شما امکان میدهد یک تابع را به عنوان تکرارکننده مشخص کنید. به عنوان مثال، "برای i، x := برش های محدوده. به عقب (های) {...}"
- حل یک مشکل طولانی مدت با حلقههای for که باعث فراخوانی کوروتینها (گوروتینها) برای اشتراکگذاری متغیرهای حلقه در سراسر تکرار میشد. به عنوان مثال، مقادیر کد:= []string{"a"، "b"، "c"} برای _, v := مقادیر محدوده {go func() {fmt.Println(v) done
منبع: opennet.ru
