
Go هر شش ماه یکبار منتشر میشود. هر نسخهی اصلی Go تا زمانی که دو نسخهی اصلی جدیدتر منتشر شوند، پشتیبانی میشود. مشکلات بحرانی با انتشار اصلاحات جزئی رفع میشوند.
همچنین لینکهایی به پروپوزالها (P) و کامیتهای (C) ویژگیهای توضیح داده شده ارائه میکنم. برای انگیزه و جزئیات پیادهسازی آنها را بررسی کنید.
- 2024-08-02
نسخه 1.23
- حلقههای
forمیتوانند بر روی توابع تکرارگر (iterator) تکرار کنند. - بسته جدید
iterبا انواع تکرارگر. - تکرارگرهای برش (slice) در بسته
slices. - تکرارگرهای نقشه (map) در بسته
maps. Timerها وTickerها که دیگر به وسیله برنامه ارجاع داده نمیشوند، بلافاصله برای جمعآوری زباله (garbage collection) واجد شرایط میشوند.- از دریافتهای منسوخ پس از اینکه
Timerها وTickerهاStop/Resetرا برگردانند، اجتناب کنید. - بسته جدید
uniqueامکاناتی برای استانداردسازی مقادیر ارائه میدهد.
- حلقههای
- 2024-02-02
نسخه 1.22
- هر تکرار از حلقه متغیرهای جدیدی ایجاد میکند تا از بروز اشکالات به دلیل اشتراک تصادفی جلوگیری کند.
- حلقههای
forمیتوانند بر روی اعداد صحیح تکرار کنند. - بسته جدید
math/rand/v2برای کار با اعداد تصادفی. - الگوهای مسیریابی HTTP از روشها و wildcards پشتیبانی میکنند.
- بسته جدید
go/versionبرای کار با نسخههای Go.
- 2023-08-02
نسخه 1.21
- توابع داخلی جدید
minوmaxکوچکترین/بزرگترین مقدار را از بین آرگومانها محاسبه میکنند. - تابع داخلی جدید
clearتمام عناصر یک نقشه را حذف یا تمام عناصر یک برش (slice) را صفر میکند. - بسته جدید
log/slogلاگبرداری ساختاریافته با سطوح مختلف را فراهم میکند. - بسته جدید
slicesعملیاتهای رایج زیادی را بر روی برشها (slices) فراهم میکند. - بسته جدید
mapsچندین عملیات رایج را بر روی نقشهها (maps) فراهم میکند. - بسته جدید
cmpبرای کار با انواع مرتبشده (ordered types). - بهینهسازی مبتنی بر پروفایل (PGO) بهینهسازیها را بر اساس اطلاعات پروفایل زمان اجرا انجام میدهد.
- 𝗣 55022
- پورت WebAssembly System Interface.
- 𝗣 58141
- توابع داخلی جدید
- 2023-02-02
نسخه 1.20
- تبدیل از یک برش (slice) به یک آرایه (array) مجاز شده است.
- مقادیر ساختارها (struct) به صورت فیلد به فیلد و به ترتیب تعریف مقایسه میشوند.
- انواع قابل مقایسه حالا میتوانند محدودیتهای
comparableرا برآورده کنند، حتی اگر آرگومانهای نوع به طور دقیق قابل مقایسه نباشند. - امکان بستهبندی چندین خطا (error) فراهم شده است.
- راهی برای لغو یک
context.Contextبا یک خطای خاص (“cause”) وجود دارد. - رشتههای فرمت
timeجدید برای سازگاری با استانداردهای بینالمللی. - بسته جدید
crypto/ecdhپشتیبانی از پروتکل Elliptic Curve Diffie-Hellman را فراهم میکند. - دستور
goاکنون به طور پیشفرضcgoرا در سیستمهایی که ابزارهای C ندارند، غیرفعال میکند.- 𝗖𝗟 496356
- 2022-08-02
- 2022-03-15
نسخه 1.18
- برنامهنویسی عمومی با استفاده از پارامترهای نوع.
- بسته جدید
debug/buildinfoدسترسی به نسخههای ماژول و فلگهای ساخت را که در فایلهای اجرایی جاسازی شدهاند، فراهم میکند. - بسته جدید
net/netipنوع آدرس IP بهتر و توابع کمکی را تعریف میکند. - دستور
go getدیگر بستهها را نمیسازد یا نصب نمیکند.- 𝗣 43684
- آزمون تصادفی (Fuzzing).
- 𝗣 44551
- 2021-08-16
- 2021-02-16
نسخه 1.16
- جاسازی فایلها در فایل اجرایی با استفاده از دستور
go:embed. - بسته جدید
runtime/metricsرابط پایداری برای خواندن معیارهای تعریفشده توسط پیادهسازی از زمان اجرای Go معرفی میکند. - بسته جدید
io/fsرابطهای سیستم فایل را فراهم میکند. - بسته
io/ioutilمنسوخ شده است.- 𝗣 42026
- حالت آگاه به ماژول به طور پیشفرض فعال شده است (
GO111MODULE=on).- 𝗣 41330
- دستورهای ساخت مانند
go buildبه طور پیشفرضgo.modوgo.sumرا تغییر نمیدهند.- 𝗣 40728
- جاسازی فایلها در فایل اجرایی با استفاده از دستور
- 2020-08-11
نسخه 1.15
- 2020-02-25
نسخه 1.14
- اجازه جاسازی رابطهای همپوشان (overlapping interfaces) داده شده است.
- گوروتینها (goroutines) اکنون به صورت ناهمزمان قابل پیشگیری (preemptible) هستند.
- بسته جدید
hash/maphashتوابع هش روی دنبالههای بایت را فراهم میکند.
- 2019-09-03
- 2019-02-25
- 2018-08-24
- 2018-02-16
نسخه 1.10
go buildحافظه کشی از بستههای اخیراً ساختهشده را نگه میدارد.go testنتایج تست را کش میکند و بهطور خودکارgo vetرا اجرا میکند.
- 2017-08-24
نسخه 1.9
- همنامسازی نوعها (Type aliases).
- 𝗣 18130
- ساعت یکنواخت در بسته
time. - بسته جدید
math/bitsبرای دستکاری بیتها. - نقشه همزمان (Concurrent map) در بسته
sync. - توابع کمکی تست در بسته
testing. - کامپایل موازی (Parallel compilation).
- همنامسازی نوعها (Type aliases).
- 2017-02-16
نسخه 1.8
- نادیده گرفتن برچسبها (tags) هنگام تبدیل یک مقدار از یک نوع ساختار به نوع دیگر.
- جمعآوری زباله (garbage collector) دیگر بهطور مداوم آرگومانها را در طول کل تابع زنده در نظر نمیگیرد.
- 𝗣 15843
- توابع مربوط به برشها (slice) در بسته
sort. - ارسال pushهای سرور HTTP/2 در بسته
net/http. - خاموشی نرم سرور HTTP در بسته
net/http. - پشتیبانی از Context در بسته
database/sql.
- 2016-08-15
- 2016-02-17
- 2015-08-19
نسخه 1.5
- کامپایلر و زمان اجرا بهطور کامل در Go نوشته شدهاند.
- جمعآوری زباله (garbage collection) همزمان.
- بهطور پیشفرض،
GOMAXPROCSبه تعداد هستههای در دسترس تنظیم میشود. - بستههای داخلی.
- دستور
go tool traceبرای ردیابی دقیق اجرای برنامه. - دستور
go docبرای ساخت مستندات بسته.
- 2014-12-10
نسخه 1.4
- حلقه for-range بدون متغیرها.
- عدم اجازه فراخوانی متدها بر روی
**T. - دستور
go generateبرای تولید کد منبع قبل از کامپایل.
- 2014-06-18
- 2013-12-01
نسخه 1.2
- هر بیانیهای که صراحتاً یا ضمنی نیاز به ارزیابی یک آدرس
nilداشته باشد، خطا است. - بیان کامل برش برای مشخص کردن ظرفیت و طول هنگام برش.
- بسته جدید
encodingمجموعهای از رابطهای کدگذاری استاندارد برای ساخت marshalers و unmarshalers سفارشی را فراهم میکند. - بسته جدید
image/color/paletteپالتهای رنگی استاندارد را ارائه میدهد. - عملیات ایندکسینگ در مشخصات قالببندی
fmt.
- هر بیانیهای که صراحتاً یا ضمنی نیاز به ارزیابی یک آدرس
- 2013-05-13
نسخه 1.1
- تقسیم عدد صحیح بر صفر یک خطای زمان کامپایل است.
- مقادیر متد.
- شناسایی خطاهای همزمان (Race detector).
- بسته جدید
go/formatروشی برای دسترسی به قابلیتهای قالببندی دستورgo fmtارائه میدهد. - بسته جدید
net/http/cookiejarاصول مدیریت کوکیهای HTTP را فراهم میکند.
[یادداشتهای نسخه](https://tip.golang.org/doc/go1.1
- 2012-03-28