1. Задача: Проанализировать код с передачей указателя на структуру в функцию
package main
import "fmt"
type Person struct {
Name string
}
func changeName(person *Person) {
person = &Person{
Name: "Alice",
}
}
func main() {
person := &Person{
Name: "Bob",
}
fmt.Println(person.Name)
changeName(person)
fmt.Println(person.Name)
}
// Что выведется и предложи варианты как исправить?2. Задача: Проанализировать код с гонкой данных в горутинах
package main
import (
"fmt"
)
func main() {
var max int
for i := 1000; i > 0; i-- {
go func() {
mx.Lock()
if i%2 == 0 && i > max {
max = i
}
}()
}
fmt.Printf("Maximum is %d", max) // Что выведется и как починить?
}3. Задача: Реализовать обертку с таймаутом и…