Kaspersky / Касперский - 4
Вопросы: Много вопросов как устроена ОС под капотом и про многопоточность в Go.
Задача: Что выведет? Почему? Что если не будем закрывать канал stopChan? Что будет если введем default? go/channels
Заголовок раздела «Задача: Что выведет? Почему? Что если не будем закрывать канал stopChan? Что будет если введем default? go/channels»func main() { msgChan := make(chan string, 1) close(msgChan)
stopChan := make(chan struct{}) close(stopChan)
select { case msgChan <- "msg ": fmt.Println("msg sent ") case <-stopChan: fmt.Println("stop signal received ") }}Задача: Что выведет? Почему? Как проверить, что интерфейс содержит указатель? Как достать значение из интерфейса? go/interfaces
Заголовок раздела «Задача: Что выведет? Почему? Как проверить, что интерфейс содержит указатель? Как достать значение из интерфейса? go/interfaces»func main() { var s *string fmt.Println(s == nil) var i any fmt.Println(i == nil) i = s fmt.Println(i == nil)}Задача: Как компилятор будет выделять память для среза? Какое поведение будет при выполнении кода? go/memory-gc
Заголовок раздела «Задача: Как компилятор будет выделять память для среза? Какое поведение будет при выполнении кода? go/memory-gc»func main() { a := make([]int) for { a = append(a, 1) }}