1
Go
1. Задача: Что выведет код со слайсами?
func main() {
fmt.Println(arr()) // Выведет: [10 1 2 3 4 5 6]
}
func arr() []int {
arr := []int{0, 1, 2, 3, 4} // Изначальный слайс
arr[0] = 1 // Шаг 1: arr = [1, 1, 2, 3, 4]
arr = append(arr, 5) // Шаг 2: arr = [1, 1, 2, 3, 4, 5]
newArr := append(arr, 6) // Шаг 3: newArr = [1, 1, 2, 3, 4, 5, 6]
arr[0] = 10 // Шаг 4: arr[0] = 10 → влияет на newArr!
return newArr // Возвращает [10, 1, 2, 3, 4, 5, 6]
}2. Задача: Что будет выполняться в программе с конкурентной записью и как это исправить?
package main
import (
"fmt"
"sync"
)
type B struct {
m map[int]int
mutex sync.Mutex
}
func (b B) Write(i int) {
b.mutex.Lock()…