Sobes.tech
Junior — Middle

Πώς μπορεί να ολοκληρωθεί η εργασία με ένα κανάλι στο πρόγραμμα;

sobes.tech AI

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

Στη Go, για να ολοκληρώσετε τη χρήση ενός καναλιού, χρησιμοποιείται η συνάρτηση close(). Το κλείσιμο ενός καναλιού σηματοδοτεί στους λήπτες ότι δεν θα αποσταλούν πλέον νέες τιμές. Μετά το κλείσιμο του καναλιού, η προσπάθεια αποστολής σε αυτό θα προκαλέσει panic, αλλά η ανάγνωση από ένα κλειστό κανάλι είναι δυνατή — θα επιστρέψει μια μηδενική τιμή και false ως δεύτερη τιμή επιστροφής.

Παράδειγμα:

ch := make(chan int)
ngo func() {
    ch <- 42
    close(ch) // Κλείνουμε το κανάλι μετά την αποστολή
}()

for val := range ch {
    fmt.Println(val) // Θα εμφανίσει 42
}

Έτσι, για να ολοκληρώσετε τη χρήση ενός καναλιού, πρέπει να καλέσετε close(channel).