Sobes.tech
Senior

Σε ποια επιλογή μετατροπής τύπου είναι πιθανό το πανικό και ποια κατασκευή το αποτρέπει;

sobes.tech AI

Απάντηση από AI

Η πανική μπορεί να συμβεί κατά τη δήλωση τύπου (type assertion) εάν ο πραγματικός τύπος της τιμής δεν ταιριάζει με τον αναμενόμενο. Για παράδειγμα:

var i interface{} = "αλφαριθμητικό"
// Η προσπάθεια μετατροπής σε int θα προκαλέσει πανικό
n := i.(int) // πανικός: μετατροπή διεπαφής: interface {} είναι string, όχι int

Για να αποφύγετε τον πανικό, χρησιμοποιείται μια κατασκευή με δύο επιστρεφόμενες τιμές — η δεύτερη δείχνει αν η μετατροπή ήταν επιτυχής:

n, ok := i.(int)
if !ok {
    // διαχείριση σφάλματος μετατροπής
}

Έτσι, η ασφαλής δήλωση τύπου αποτρέπει τον πανικό και επιτρέπει την σωστή διαχείριση της κατάστασης όταν οι τύποι δεν ταιριάζουν.