1
Лайвкодинг
1. Задача: Объяснить вывод программы с горутинами и исправить ошибку
package main
import (
"fmt"
"sync"
)
func main() {
wg := new(sync.WaitGroup)
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
fmt.Println(i)
wg.Done()
}()
}
wg.Wait()
}2. Задача: Что выведет код при модификации слайса в функции?
package main
import (
"fmt"
)
func mod(a []int) {
for i, _ := range a {
a[i] = 5
}
fmt.Println(a)
}
func main() {
s1 := []int{1, 2, 3, 4}
mod(s1)
fmt.Println(s1)
}3. Задача: Определить результат выполнения кода с defer
package main
import (
"fmt"
)
func main() {
i := 0
defer fmt.Println(i)
i++
return
}4. Задача: Найти ошибку в работе с WaitGroup
func main() {
var wg sync.WaitGroup…