Google-მა გამოუშვა პროგრამირების ენის ახალი ვერსიის გადახედვა Go. ვერსია 1.18 ამატებს ფუნქციონირებას "ზოგადი" პროგრამირებისთვის ე.წ. "პარამეტრული" ტიპებით.
მათივე სიტყვებით, ეს არის ყველაზე მნიშვნელოვანი და უდიდესი ცვლილება პროგრამირების ენაში Go 1 ვერსიის გამოსვლის შემდეგ. გენერიკების იდეა არის ის, რომ ის ახლა ფუნქციების და მონაცემთა სტრუქტურების წარმოდგენის საშუალებას აძლევს ტიპების შეცვლით. ეს გამორიცხავს "ზოგადობას", რომელიც დაშვებულია ინტერფეისის ტიპის განსაზღვრით, როგორც ფუნქციაზე მიტანილი ფაქტობრივი მონაცემების აბსტრაქციის გზა.
Google მიუთითებს, რომ Go-ს დეველოპერებმა უნდა გააცნობიერონ, რომ ფუნქციონირება უდავოდ გამოიწვევს ახალ შეცდომებს. ამიტომ მათ სიფრთხილით უნდა მიმართონ ამ „გენერიკებს“.
სხვა ფუნქციები Go 1.18 Beta-ში
ზემოაღნიშნული ფუნქციების გარდა, ახალ გადახედვას ასევე აქვს ჩაშენებული მხარდაჭერა fuzzing-ზე დაფუძნებული ტესტების ჩაწერისთვის. ამ ტესტებს შეუძლიათ ავტომატურად იპოვონ შენატანები, რომლებიც იწვევს პროგრამების ავარიას ან არასწორი პასუხების დაბრუნებას. Go 1.18 Beta ასევე გთავაზობთ ახალ „გადასვლის სამუშაო სივრცის რეჟიმს“. ეს საშუალებას აძლევს პროგრამისტებს იმუშაონ რამდენიმე Go მოდულთან ერთდროულად. Google-ის თანახმად, ეს განსაკუთრებით სასარგებლოა დიდი პროექტებისთვის.
გარდა ამისა, ვერსია 1.18 Beta ამატებს ფუნქციონირებას გაფართოებული go version -m ბრძანებით. ეს ბრძანება ახლა ინახავს დეტალებს შემდგენელი დროშების სახით. ახლა პროგრამას შეუძლია მოითხოვოს საკუთარი კონსტრუქციის დეტალები ბრძანებით debug.ReadBuildInfo.
ასევე, გადახედვისას დაემატა უფრო მეტი რეგისტრზე დაფუძნებული დარეკვის კონვენცია, რომელიც ხელმისაწვდომია Go 1.17-დან. სადაც წინა ვერსიაში ეს ფუნქციონალობა მხოლოდ Go კოდის დასაჩქარებლად იყო შესაფერისი x86 და x64 სისტემებზე, ახლა ის ასევე შესაფერისია ARM64 და PPC64 დაფუძნებული სისტემებისთვის. ამან უნდა უზრუნველყოს 20 პროცენტამდე მეტი სიჩქარე.