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
Είναι σημαντικό να χρησιμοποιείτε μοναδικούς τύπους κλειδιών για να αποφεύγετε συγκρούσεις, π.χ., ορίζοντας έναν δικό σας τύπο για τα κλειδιά.