Sobes.tech
Junior — Middle

Εξηγήστε τη λειτουργία της κατασκευής type switch στη γλώσσα Go και ποια είναι η διαφορά της από το συνηθισμένο switch-case.

sobes.tech AI

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

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

Παράδειγμα σύνταξης:

switch v := x.(type) {
case int:
    fmt.Println("int", v)
case string:
    fmt.Println("string", v)
default:
    fmt.Println("άλλος τύπος")
}

Εδώ, το x είναι μια μεταβλητή τύπου διεπαφής, και το v είναι μια μεταβλητή με συγκεκριμένο τύπο σε κάθε περίπτωση.

Διαφορά από το συνηθισμένο switch-case:

  • Το συνηθισμένο switch συγκρίνει την τιμή της έκφρασης με σταθερές ή εκφράσεις.
  • Το type switch συγκρίνει τον τύπο της τιμής της διεπαφής, όχι την ίδια την τιμή.

Το type switch είναι χρήσιμο για εργασία με διεπαφές, όταν χρειάζεται να εκτελέσετε διαφορετικές ενέργειες ανάλογα με τον πραγματικό τύπο του αντικειμένου που αποθηκεύεται στη διεπαφή.