Sobes.tech
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 βοηθά στη μεταφορά πρόσθετων δεδομένων στη σειρά κλήσεων, διατηρώντας τη δυνατότητα ακύρωσης και ορισμού χρονικών ορίων.