Sobes.tech
Junior

Ką daro default konstrukcija select sakinyje?

sobes.tech AI

Atsakymas iš AI

select operatoriaus default konstruktas vykdo kodo bloką, jei nė vienas iš kitų select sąraše išvardytų kanalų šiuo metu nėra pasiruošęs skaityti ar rašyti. Tai užkerta kelią gorutinos užblokavimui.

Pavyzdys:

// Pavyzdys su default
select {
case msg1 := <-channel1:
	fmt.Println("Gauta žinutė 1:", msg1)
case msg2 := <-channel2:
	fmt.Println("Gauta žinutė 2:", msg2)
default:
	fmt.Println(" Kanalai nėra pasiruošę, vykdomas default")
}

Naudojant default, select operacija tampa neblokuojanti. Jei default nėra, select lauks, kol vienas iš kanalų taps pasiruošęs.