د Go 1.16 برنامه کولو ژبه خپرول وړاندې کیږي ، کوم چې د ګوګل لخوا د ټولنې په ګډون د هایبرډ حل په توګه رامینځته کیږي چې د تالیف شوي ژبو عالي فعالیت د سکریپټینګ ژبو داسې ګټو سره ترکیب کوي لکه د کوډ لیکلو اسانه کول. د پرمختګ سرعت او د خطا ساتنه. د پروژې کوډ د BSD جواز لاندې ویشل شوی.
د Go ترکیب د C ژبې د پیژندلو عناصرو پراساس دی چې د Python ژبې څخه ځینې پور اخیستل کیږي. ژبه خورا لنډه ده، مګر کوډ د لوستلو او پوهیدو لپاره اسانه دی. د ګو کوډ په یوازینۍ بائنري اجرایوي فایلونو کې تالیف شوی چې په اصلي ډول د مجازی ماشین کارولو پرته چلیږي (پروفایلینګ ، ډیبګ کولو ماډلونه ، او د رن ټایم ستونزې کشف کولو نور فرعي سیسټمونه د رن ټایم برخو په توګه مدغم شوي) ، کوم چې د C برنامو سره پرتله کولو فعالیت ته اجازه ورکوي.
پروژه په پیل کې د څو اړخیزو پروګرامونو په نظر کې نیولو سره رامینځته شوې او په څو کور سیسټمونو کې اغیزمن عملیات شامل دي، په شمول د موازي کمپیوټري تنظیم کولو او د موازي اجرا شوي میتودونو ترمنځ تعامل لپاره د آپریټر کچې وسیلو چمتو کول. ژبه د ډیر تخصیص شوي حافظې بلاکونو پروړاندې جوړ محافظت هم چمتو کوي او د کثافاتو راټولونکي کارولو وړتیا چمتو کوي.
په ګو ۱.۱۶ کې معرفي شوي اصلي نوي ځانګړتیاوې عبارت دي له:
- د ایمبیډ پیکج اضافه شوی، چې په پروګرام کې د خپل سري فایلونو او ډایرکټریو د ځای پر ځای کولو لپاره وسایل چمتو کوي. یو نوی لارښود، "//go:embed"، د هغو فایلونو مشخص کولو لپاره چمتو شوی چې د تالیف په وخت کې باید ځای پر ځای شي. د مثال په توګه، په کوډ کې د "//go:embed test.txt" تبصره مشخص کول او وروسته د متغیر "var f embed.FS" اعلان کول به د test.txt فایل ایمبیډ کړي او د "f" تشریح کونکي له لارې دې ته لاسرسی ته اجازه ورکړي. په ورته ډول، تاسو کولی شئ د سرچینو یا د یو ځانګړي ډول انفرادي ارزښتونو سره د کار لپاره اړین فایلونه ایمبیډ کړئ. د مثال په توګه، د فایل version.txt څخه د سټرینګ متغیر "s" ترلاسه کولو لپاره، تاسو کولی شئ مشخص کړئ: وارد کړئ _ "ایمبیډ" //go:embed version.txt var s سټرینګ چاپ(s)
- د مدغم نسخې ملاتړ سره نوی ماډل سیسټم اوس په ډیفالټ ډول اړین دی، د GOPATH پر بنسټ د انحصار مدیریت ځای نیسي. د GO111MODULE چاپیریال متغیر اوس په ډیفالټ ډول "آن" ته ټاکل شوی، او د ماډل حالت د کاري یا اصلي لارښود کې د go.mod فایل شتون پرته کارول کیږي. په نوي حالت کې، د "go build" او "go test" په څیر د جوړولو قوماندې د go.mod او go.sum مینځپانګې نه بدلوي، او د "go install" قوماندې د نسخې ځانګړي دلیلونه پروسس کوي ("go install example.com/cmd@v1.0.0"). د پخواني چلند ته د بیرته راستنیدو لپاره، GO111MODULE "auto" ته بدل کړئ. دا یادونه شوې چې 96٪ پراختیا کونکي لا دمخه نوي ماډل سیسټم ته مهاجر شوي دي.
- لینکر غوره شوی دی. د لویو پروژو لپاره، لینک کول اوس ۲۰-۲۵٪ ګړندی دی او ۵-۱۵٪ کم حافظې ته اړتیا لري.
- کمپائلر اوس د لوپونو، میتود ارزښتونو، او ډول سویچ جوړښتونو لپاره د لنډیز سره د انلاین فعالیت پراختیا ملاتړ کوي.
- د ایپل سیسټمونو لپاره چې د نوي ایپل M1 ARM چپ سره سمبال دي، ملاتړ اضافه شوی. د netbsd/arm64 او openbsd/mips64 پورټونه اضافه شوي، چې په 64-bit ARM کې NetBSD او په MIPS64 سیسټمونو کې OpenBSD ملاتړ کوي. د لینکس/riscv64 پورټ اوس د cgo او "-buildmode=pie" حالت ملاتړ کوي.
- د x87 تالیف حالت (GO386=387) لپاره ملاتړ بند شوی دی. د SSE2 لارښوونو پرته د پروسسرونو ملاتړ اوس د "GO386=softfloat" سافټویر حالت له لارې شتون لري.
سربیره پردې، دا د Dart 2.12 بیټا ریلیز لپاره د ازموینې پیل د یادونې وړ ده، کوم چې د null خوندیتوب حالت ثبات کوي، کوم چې د هغو متغیرونو کارولو هڅو له امله رامینځته شوي حادثې مخه نیسي چې ارزښتونه یې غیر تعریف شوي او null ته ټاکل شوي دي. دا حالت ډاډ ورکوي چې متغیرونه نشي کولی غیر تعریف شوي ارزښتونه ولري پرته لدې چې په واضح ډول null ټاکل شوی وي. دا حالت په کلکه د متغیر ډولونه پلي کوي، کمپیلر ته اجازه ورکوي چې اضافي اصلاحونه پلي کړي. د ډول مطابقت د تالیف په وخت کې چک کیږي؛ د مثال په توګه، د یو متغیر ته د null ټاکلو هڅه چې ډول یې nullness نه معنی لري، لکه int، به د غلطۍ پایله ولري.
سرچینه: opennet.ru
