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

Что выведется в первом, во втором и в третьем случае?

go · puzzlesKaspersky / Касперский - 52 кв 2025не решено

Что выведется в первом, во втором и в третьем случае?

type Speaker interface {
Speak() string
}
type Person struct {
name string
}
func (p Person) Speak() string {
return "Hi, I 'm " + p.name
}
func main() {
var s Speaker
p := Person{name: "Alice "}
s = p
p.name = "Bob "
fmt.Println(s.Speak()) // (1)
{
func() {
s := p
fmt.Println(s.Speak()) // (2)
}()
go func(p Person) {
time.Sleep(10 * time.Millisecond)
fmt.Println(p.Speak()) // (3)
}(p)
p.name = "Charlie "
time.Sleep(20 * time.Millisecond)
}
}

Источник: Kaspersky / Касперский - 5 · 2 кв 2025

← Что возле каждого вывода fmt выведет в… · Все задачи · Go · Необходимо реализовать middleware. Midd… →