Go یک زبان برنامه نویسی همزمان و کامپایل شده با تایپ ایستا با الهام از نحو C است.
در انتشار نسخه جدید زبان برنامه نویسی Go 1.20، که توسط گوگل با مشارکت جامعه به عنوان یک راه حل ترکیبی که عملکرد بالای زبان های کامپایل شده را ترکیب می کند، در حال توسعه است.
نسخه جدید Go 1.20 از یک فاز توسعه گسترده بهره مند شد، با آزمایش گسترده در بالا و بهبود کلی پایداری کد پایه امکان پذیر شد.
شایان ذکر است که این پروژه در ابتدا با نگاهی به برنامهنویسی چند رشتهای و عملیات کارآمد بر روی سیستمهای چند هستهای، از جمله ارائه ابزارهای پیادهسازی شده توسط حامل برای سازماندهی محاسبات موازی و تعامل بین روشهای اجرا شده به صورت موازی، توسعه یافته است. این زبان همچنین محافظت داخلی در برابر سرریزهای حافظه اختصاص داده شده را فراهم می کند و امکان استفاده از جمع کننده زباله را فراهم می کند.
نحو Go بر اساس عناصر آشنای زبان C با برخی وام گرفتن از زبان Oberon است. زبان کاملاً مختصر است، اما کد به راحتی قابل خواندن و درک است.
ویژگی های اصلی جدید Go 1.20
در این نسخه جدید Go 1.20 که ارائه شده است، برجسته شده است که ارائه کرده استo پشتیبانی آزمایشی برای بهینه سازی هدایت شده با نمایه (PGO)، که ویژگی های تعیین شده در زمان اجرا را در نظر می گیرد. با در نظر گرفتن مشخصات اجرایی در هنگام مونتاژ، عملکرد برنامه ها را می توان 3-4٪ بهبود بخشید. اضافه شدن گزینه "-pgo" برای گنجاندن PGO در دستورات go build، go install و سایر دستورات ساخت.
تازگی دیگری که ارائه می شود این است توابع SliceData، String و StringData را اضافه کرد به بسته ناامن برای دستکاری های سطح پایین با سگمنت ها (آرایه های با اندازه پویا) و رشته ها (به عنوان مثال، برای تبدیل یک ناحیه حافظه اشاره شده توسط یک اشاره گر به رشته ای از نوع رشته و بالعکس).
علاوه بر این، همچنین برجسته شده است که پوشش، با قابلیت جمع آوری پروفایل برای برنامه ها به طور کلی و نه تنها برای تست های واحد، گسترش یافته است، گزینه "-cover" نیز برای رفتن به کامپایل، نصب و سایر دستورات اضافه شده است. ساخت برای ایجاد نمایه پوشش.
نرم افزار go از اتصال به بسته های کتابخانه استاندارد از پیش کامپایل شده رها می شود واقع در دایرکتوری $GOROOT/pkg، که امکان حذف آنها از توزیع و دستیابی به کاهش اندازه داده های دانلود شده را فراهم می کند. بستههای استاندارد کتابخانه، مانند بستههای معمولی، اکنون در صورت نیاز ساخته میشوند و در کش ساخت ذخیره میشوند.
دستور go به طور پیش فرض استفاده از بسته cgo را غیرفعال می کند در سیستمهای بدون مجموعهای از ابزارها برای کامپایل کد C. این سیستمها اکنون از انواع بستههای کتابخانه استاندارد در زبان Go به جای استفاده از بستههای از پیش کامپایل شده استفاده میکنند.
از سایر تغییرات برجسته نسخه جدید:
- ابزار دامپزشکی هشدارهای اضافی درباره مشکلات متغیرهای مورد استفاده در حلقهها دارد که هنگام اجرای آزمایشها به صورت موازی شناسایی میشوند.
- قوانین تبدیل نوع با امکان تبدیل مستقیم از یک قطعه به یک آرایه گسترش یافته است.
- مشخصات به صراحت ترتیب مقایسه عناصر آرایه و فیلدهای ساختار را مشخص می کند.
- بسته crypto/ecdh با پشتیبانی از تبادل کلید ECDH (Elliptic Curve Diffie-Hellmann) به کتابخانه استاندارد اضافه شده است.
- یک نوع جدید http.ResponseController برای ایجاد کنترلرهای پاسخ HTTP غنی اضافه کرد.
- تابع Rewrite را به نوع httputil.ReverseProxy اضافه کرد تا درخواست را تغییر دهد.
- تابع context.WithCancelCause اضافه شد که به شما امکان می دهد با یک خطای مشخص تماس را لغو کنید.
- فیلدهای Cancel و WaitDelay به نوع os/exec.Cmd اضافه شده اند تا رفتار زمانی که زمینه لغو می شود یا فرآیند خاتمه می یابد، مشخص شود.
- در کامپایلر و زباله جمع کن مصرف حافظه کاهش یافته و عملکرد بهینه شده است (افزایش سرعت به 2٪ می رسد).
- کارهایی برای سرعت بخشیدن به کامپایل انجام شده است: کاهش زمان کامپایل می تواند تا 10٪ باشد.
- پشتیبانی آزمایشی برای پلتفرم FreeBSD در سیستمهایی با معماری RISC-V اضافه شد (GOOS=freebsd، GOARCH=riscv64).
سرانجام اگر شما علاقه مند به دانستن بیشتر در مورد آن هستید ، شما می توانید جزئیات را بررسی کنید در لینک زیر.
اولین کسی باشید که نظر