Junior — Middle
Μπορείτε να δημιουργήσετε ένα κανάλι χωρίς να καθορίσετε το μέγεθός του κατά τη διαδικασία εκκίνησης;
sobes.tech AI
Απάντηση από AI
Ναι, στο Go μπορείς να δημιουργήσεις ένα κανάλι χωρίς να ορίσεις το μέγεθός του — αυτό θα είναι ένα κανάλι χωρίς buffer. Ένα τέτοιο κανάλι μπλοκάρει τον αποστολέα μέχρι ο παραλήπτης να διαβάσει την τιμή, και το αντίστροφο. Παράδειγμα δημιουργίας ενός κανάλι χωρίς buffer:
ch := make(chan int) // κανάλι χωρίς buffer
Αν θέλεις να δημιουργήσεις ένα bufferized κανάλι με συγκεκριμένο μέγεθος, ορίζεις το δεύτερο παράμετρο:
ch := make(chan int, 10) // κανάλι με buffer 10 στοιχείων
Έτσι, το προεπιλεγμένο μέγεθος του καναλιού είναι μηδέν, και λειτουργεί ως μηχανισμός συγχρονισμού μεταξύ των goroutines.