Sobes.tech
Junior — Middle

Μπορείτε να δημιουργήσετε ένα κανάλι χωρίς να καθορίσετε το μέγεθός του κατά τη διαδικασία εκκίνησης;

sobes.tech AI

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

Ναι, στο Go μπορείς να δημιουργήσεις ένα κανάλι χωρίς να ορίσεις το μέγεθός του — αυτό θα είναι ένα κανάλι χωρίς buffer. Ένα τέτοιο κανάλι μπλοκάρει τον αποστολέα μέχρι ο παραλήπτης να διαβάσει την τιμή, και το αντίστροφο. Παράδειγμα δημιουργίας ενός κανάλι χωρίς buffer:

ch := make(chan int) // κανάλι χωρίς buffer

Αν θέλεις να δημιουργήσεις ένα bufferized κανάλι με συγκεκριμένο μέγεθος, ορίζεις το δεύτερο παράμετρο:

ch := make(chan int, 10) // κανάλι με buffer 10 στοιχείων

Έτσι, το προεπιλεγμένο μέγεθος του καναλιού είναι μηδέν, και λειτουργεί ως μηχανισμός συγχρονισμού μεταξύ των goroutines.