Junior — Middle
Έχετε χρησιμοποιήσει ποτέ τη λειτουργία context.WithValue στον κώδικά σας;
sobes.tech AI
Απάντηση από AI
Ναι, η λειτουργία context.WithValue στη Go χρησιμοποιείται για τη μεταφορά τιμών στο πλαίσιο εκτέλεσης, συνήθως για τη μεταφορά δεδομένων μεταξύ συναρτήσεων και goroutines χωρίς να αλλάζει η υπογραφή των συναρτήσεων.
Είναι σημαντικό να θυμόμαστε ότι το πλαίσιο προορίζεται για τη μεταφορά πληροφοριών που σχετίζονται με τη διαχείριση του κύκλου ζωής (π.χ. χρονικά όρια, ακυρώσεις), και όχι για τη μεταφορά μεγάλων όγκων δεδομένων ή παραμέτρων.
Παράδειγμα χρήσης:
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 12345)
func process(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("ID χρήστη:", userID)
}
process(ctx)
Έτσι, το context.WithValue βοηθά στη μεταφορά πρόσθετων δεδομένων στη σειρά κλήσεων, διατηρώντας τη δυνατότητα ακύρωσης και ορισμού χρονικών ορίων.