Έκδοση της γλώσσας προγραμματισμού Go 1.22

Παρουσιάζεται η κυκλοφορία της γλώσσας προγραμματισμού Go 1.22, η οποία αναπτύσσεται από την Google με τη συμμετοχή της κοινότητας ως υβριδική λύση που συνδυάζει την υψηλή απόδοση των μεταγλωττισμένων γλωσσών με τέτοια πλεονεκτήματα των γλωσσών δέσμης ενεργειών όπως η ευκολία γραφής κώδικα , ταχύτητα ανάπτυξης και προστασία σφαλμάτων. Ο κώδικας του έργου διανέμεται με την άδεια BSD.

Η σύνταξη του Go βασίζεται σε γνωστά στοιχεία της γλώσσας C με κάποια δάνεια από τη γλώσσα Oberon. Η γλώσσα είναι αρκετά συνοπτική, αλλά ο κώδικας είναι ευανάγνωστος και κατανοητός. Ο κώδικας Go μεταγλωττίζεται σε αυτόνομα δυαδικά εκτελέσιμα αρχεία που εκτελούνται εγγενώς, χωρίς τη χρήση εικονικής μηχανής (το προφίλ, οι μονάδες εντοπισμού σφαλμάτων και άλλα υποσυστήματα για τον εντοπισμό προβλημάτων κατά το χρόνο εκτέλεσης είναι ενσωματωμένα ως στοιχεία χρόνου εκτέλεσης), γεγονός που επιτρέπει απόδοση συγκρίσιμη με τα προγράμματα C .

Το έργο αναπτύχθηκε αρχικά με γνώμονα τον προγραμματισμό πολλαπλών νημάτων και την αποτελεσματική λειτουργία σε συστήματα πολλαπλών πυρήνων, συμπεριλαμβανομένης της παροχής μέσων σε επίπεδο χειριστή για την οργάνωση παράλληλων υπολογιστών και αλληλεπίδρασης μεταξύ μεθόδων που εκτελούνται παράλληλα. Η γλώσσα παρέχει επίσης ενσωματωμένη προστασία έναντι υπερκατανεμημένων μπλοκ μνήμης και παρέχει τη δυνατότητα χρήσης ενός συλλέκτη απορριμμάτων.

Μεταξύ των αλλαγών στη νέα έκδοση:

  • Υποστήριξη για τον καθορισμό περιοχών ακεραίων αριθμών έχει προστεθεί στους βρόχους "for", για παράδειγμα, για επανάληψη τιμών από 0 έως 9, μπορείτε τώρα να χρησιμοποιήσετε τον βρόχο "for i := range 10 {…}".
  • Η πειραματική (GOEXPERIMENT=rangefunc) υποστήριξη για συναρτήσεις εύρους έχει προστεθεί στους βρόχους for, επιτρέποντας τον καθορισμό μιας συνάρτησης ως επαναλήπτη. Για παράδειγμα, "for i, x := slices range.Backward(s) {...}"
  • Ένα μακροχρόνιο πρόβλημα με τους βρόχους for που προκαλούσε τις κλήσεις gorutine να μοιράζονται μεταβλητές βρόχου σε όλες τις επαναλήψεις έχει επιλυθεί. Για παράδειγμα, values ​​​​:= []string{"a", "b", "c"} for _, v := range values ​​​​{ go func() { fmt.Println(v) done

    Πηγή: opennet.ru
Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster