Junior — Middle
Τι θα επιστραφεί κατά το κλείσιμο ενός καναλιού με μια σημαία σε μια γλώσσα προγραμματισμού;
sobes.tech AI
Απάντηση από AI
Στα Go, κατά την ανάγνωση από ένα κανάλι χρησιμοποιώντας τον τελεστή λήψης και τη σημαία:
value, ok := <-ch
- Αν το κανάλι είναι ανοιχτό και διαβάστηκε με επιτυχία μια τιμή, το
okθα είναιtrue. - Αν το κανάλι είναι κλειστό και έχουν διαβαστεί όλες οι τιμές, η λειτουργία ανάγνωσης θα επιστρέψει την μηδενική τιμή του τύπου του καναλιού, και το
okθα είναιfalse.
Έτσι, η σημαία ok δείχνει ότι το κανάλι είναι ακόμα ανοιχτό και τα δεδομένα είναι διαθέσιμα. Αυτό επιτρέπει τον ασφαλή προσδιορισμό του πότε το κανάλι κλείνει και δεν θα υπάρχουν περισσότερα δεδομένα.