Sobes.tech
Junior — Middle

Τι συμβαίνει αν πραγματοποιήσετε μια λειτουργία εγγραφής σε ένα κενό (nil) κανάλι στη γλώσσα Go;

sobes.tech AI

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

Αν προσπαθήσετε να γράψετε μια τιμή σε ένα κανάλι nil στο Go, το πρόγραμμα θα μπλοκαριστεί για πάντα (deadlock). Αυτό συμβαίνει επειδή το κανάλι nil δεν έχει αρχικοποιηθεί και δεν μπορεί να δεχτεί ή να στείλει τιμές.

Παράδειγμα:

var ch chan int // ch == nil

func main() {
    ch <- 1 // εδώ το πρόγραμμα θα κολλήσει
}

Για να το αποφύγετε, το κανάλι πρέπει να αρχικοποιηθεί με make, για παράδειγμα:

ch := make(chan int)

Μόνο μετά από αυτό, μπορείτε να γράψετε και να διαβάσετε με ασφάλεια από το κανάλι.