Sobes.tech
Junior

Υπάρχει δυναμικός τύπος στο Go;

sobes.tech AI

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

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

Ωστόσο, στη Go υπάρχουν διεπαφές και ο τύπος interface{}, που επιτρέπει την εργασία με οποιοδήποτε τύπο δεδομένων, δημιουργώντας μια ορισμένη ευελιξία που μοιάζει με δυναμικό τύπο. Αλλά η εργασία με τέτοιες τιμές απαιτεί ρητή μετατροπή τύπου ή χρήση assertion τύπου.

Παράδειγμα χρήσης του κενό διεπαφής:

var x interface{}
 x = 42
 x = "σειρά"

// Για να αποκτήσετε έναν συγκεκριμένο τύπο, πρέπει να κάνετε μετατροπή:
if str, ok := x.(string); ok {
    fmt.Println("Αυτή είναι μια σειρά:", str)
}