گو پروگرامنگ ٻولي جو رليز 1.18

Go 1.18 پروگرامنگ ٻولي جو رليز پيش ڪيو ويو آهي، جيڪا گوگل پاران ڪميونٽي جي شموليت سان هڪ هائبرڊ حل جي طور تي تيار ڪئي وئي آهي، جيڪا مرتب ڪيل ٻولين جي اعلي ڪارڪردگي کي گڏ ڪري ٿي، اسڪرپٽنگ ٻولين جي فائدن سان گڏ ڪوڊ لکڻ جي آسانيء سان. ، ترقي جي رفتار ۽ غلطي تحفظ. پروجيڪٽ ڪوڊ بي ايس ڊي لائسنس تحت ورهايو ويو آهي.

گو جو نحو C ٻوليءَ جي واقف عناصرن تي ٻڌل آھي پٿون ٻوليءَ مان ڪجھ قرضن سان. ٻولي ڪافي جامع آهي، پر ڪوڊ پڙهڻ ۽ سمجھڻ ۾ آسان آهي. گو ڪوڊ اسٽينڊ اڪيلو بائنري ايگزيڪيوٽو فائلن ۾ مرتب ڪيو ويو آهي جيڪي مقامي طور تي ورچوئل مشين استعمال ڪرڻ کان سواءِ هلن ٿيون (پروفائلنگ، ڊيبگنگ ماڊلز، ۽ ٻيا رن ٽائم مسئلا ڳولڻ وارا سب سسٽم رن ٽائم اجزاء جي طور تي ضم ٿيل آهن)، جيڪا ڪارڪردگي جي اجازت ڏئي ٿي C پروگرامن جي مقابلي ۾.

پروجيڪٽ شروعاتي طور تي ملٽي ٿريڊ پروگرامنگ ۽ ملٽي ڪور سسٽم تي موثر آپريشن جي نظر سان تيار ڪيو ويو آهي، جنهن ۾ متوازي ڪمپيوٽنگ کي منظم ڪرڻ ۽ متوازي-عملي طريقن جي وچ ۾ رابطي لاءِ آپريٽر-سطح جا وسيلا مهيا ڪرڻ شامل آهن. ٻولي وڌيڪ مختص ٿيل ميموري بلاڪ جي خلاف بلٽ ان تحفظ پڻ فراهم ڪري ٿي ۽ گندگي ڪليڪٽر استعمال ڪرڻ جي صلاحيت فراهم ڪري ٿي.

نئون نسخو عام ڪمن ۽ قسمن (جنريڪس) لاءِ سپورٽ شامل ڪري ٿو، جنهن جي مدد سان هڪ ڊولپر هڪ ئي وقت ۾ ڪيترن ئي قسمن سان ڪم ڪرڻ لاءِ ٺهيل ڪمن جي وضاحت ۽ استعمال ڪري سگهي ٿو. اهو پڻ ممڪن آهي ته انٽرفيس استعمال ڪرڻ لاءِ گڏيل قسمون ٺاهڻ لاءِ جيڪي گھڻن ڊيٽا جي قسمن تي مشتمل هجن. جنريڪس لاءِ سپورٽ موجوده ڪوڊ سان پسمانده مطابقت کي ٽوڙڻ کان سواءِ لاڳو ڪئي وئي آهي. // Sum set values, Works for int64 ۽ float64 قسمن func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V { var s V for _, v := range m { s += v } return s } // ٻيو آپشن عام قسم جي تعريف سان: ٽائپ نمبر انٽرفيس { int64 | float64 } func SumNumbers[K comparable, V Number](m map[K]V) V { var s V for _, v := range m { s += v } return s }

ٻيون واڌايون:

  • فزنگ ڪوڊ ٽيسٽ لاءِ يوٽيلٽيز کي معياري ٽول ڪٽ ۾ ضم ڪيو ويو آهي. فزنگ ٽيسٽنگ دوران، ان پٽ ڊيٽا جي تمام ممڪن بي ترتيب مجموعن جو هڪ وهڪرو ٺاهيل آهي ۽ انهن جي پروسيسنگ دوران ممڪن ناڪامي رڪارڊ ٿيل آهي. جيڪڏهن هڪ سلسلو حادثو ٿئي ٿو يا متوقع جواب سان نه ٿو ملي، ته پوءِ اهو رويو تمام گهڻو امڪان آهي ته هڪ بگ يا ڪمزوريءَ جي نشاندهي ڪري.
  • ملٽي ماڊيولر ڪم اسپيسز لاءِ سپورٽ شامل ڪئي وئي، توھان کي ھڪ ئي وقت ڪيترن ئي ماڊيولز تي ڪمانڊ هلائڻ جي اجازت ڏئي ٿي، توھان کي ھڪ ئي وقت گھڻن ماڊلز ۾ ڪوڊ ٺاهڻ ۽ هلائڻ جي اجازت ڏئي ٿي.
  • ايپل M1، ARM64 ۽ PowerPC64 پروسيسرز تي ٻڌل سسٽم لاءِ اهم ڪارڪردگي بهتريون ڪيون ويون آهن. فعل کي دليلن کي منتقل ڪرڻ ۽ نتيجو واپس ڪرڻ لاءِ اسٽيڪ جي بدران رجسٽر استعمال ڪرڻ جي صلاحيت کي فعال ڪيو. ڪمپيلر طرفان لوپ جي ان لائن انرولنگ کي بهتر بڻايو ويو. ڪمپيلر ۾ ٽائپ چيڪنگ مڪمل طور تي نئين سر ترتيب ڏني وئي آھي. ڪجھ تجربا ڏيکارين ٿا 20٪ ڪوڊ ڪارڪردگي ۾ اڳئين رليز جي مقابلي ۾، پر تاليف پاڻ تقريبا 15٪ وڌيڪ وقت وٺندو آهي.
  • رن ٽائم ۾، آپريٽنگ سسٽم ڏانهن آزاد ٿيل ميموري کي واپس ڪرڻ جي ڪارڪردگي کي وڌايو ويو آهي ۽ گندي ڪليڪٽر جي آپريشن کي بهتر ڪيو ويو آهي، جنهن جو رويو وڌيڪ متوقع ٿي چڪو آهي.
  • نوان پيڪيجز net/netip ۽ debug/buildinfo معياري لائبريري ۾ شامل ڪيا ويا آهن. TLS 1.0 ۽ 1.1 لاءِ سپورٽ ڪلائنٽ ڪوڊ ۾ ڊفالٽ طور بند ٿيل آهي. crypto/x509 ماڊل SHA-1 هيش استعمال ڪندي دستخط ٿيل سرٽيفڪيٽن جي پروسيسنگ کي روڪي ڇڏيو آهي.
  • لينڪس ۾ ماحول جي گهرج کي وڌايو ويو آهي؛ ڪم ڪرڻ لاء، توهان کي گهٽ ۾ گهٽ نسخو 2.6.32 جو لينڪس ڪنيال هجڻ گهرجي. ايندڙ رليز ۾، ساڳئي تبديلين جي توقع آهي FreeBSD لاءِ (FreeBSD 11.x برانچ لاءِ سپورٽ بند ڪئي ويندي) ۽ ڪم ڪرڻ لاءِ گهٽ ۾ گهٽ FreeBSD 12.2 جي ضرورت پوندي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو