Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε για ποιο λόγο χρησιμοποιείται η λειτουργία context.WithValue στο Go και πώς λειτουργεί;

sobes.tech AI

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

Η λειτουργία context.WithValue στο Go χρησιμοποιείται για τη δημιουργία ενός νέου περιβάλλοντος που περιέχει ένα ζεύγος κλειδιού-τιμής. Αυτό επιτρέπει τη μεταφορά πρόσθετων δεδομένων μέσω της αλυσίδας κλήσεων, χωρίς να αλλάζουν οι υπογραφές των συναρτήσεων.

Λειτουργεί ως εξής: παρέχετε το αρχικό περιβάλλον, το κλειδί και την τιμή, και λαμβάνετε ένα νέο περιβάλλον από το οποίο μπορείτε να εξάγετε αυτήν την τιμή χρησιμοποιώντας context.Value(key).

Παράδειγμα:

ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Θα εμφανίσει: 42

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