1
Технический скрининг
2
Теория
1. Зачем нужны каналы в Go и как они устроены?
2. Из каких частей состоит протокол HTTP и для чего он используется?
3
Задачи
Практика3. Задача: Реализовать функцию uniqRandn, которая генерирует слайс длины n из уникальных случайных чисел
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println(uniqRandn(10))
}
func uniqRandn(n int) []int {
// ...
}Ответ
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println(uniqRandn(10))
}
func uniqRandn(n int) []int {
result := make([]int, 0, n)
alreadyUsedNums := make(map[int]struct{})
for len(result) < n {
rndNum := rand.Intn(100)
if _, ok := alreadyUsedNums[rndNum]; !ok {
alreadyUsedNums[rndNum] =…