Перейти к содержимому

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)
}
}