Нужно найти ошибки и исправить код так, чтобы результат всегда был 55 (сумма чисел от 1 до 10). Сейчас вместо 55 выводится число около 100, а иногда печатается не всё. Что выводит программа сейчас и почему?
main.gogo
1packagemain23import(4"fmt"5"sync"6"time"7)89typeAccstruct{Valueint}1011func(a*Acc)Inc(nany){a.Value+=n.(int)}1213func(a*Acc)Dec(nany){a.Value-=n.(int)}1415func(aAcc)Get()int{returna.Value}1617varmusync.Mutex18vara=Acc{Value:0}1920funcmain(){21n:=022forrange[10]int{}{23n++24gofunc(){25mu.Lock()26func(){27deferfunc(){recover()}()28deferfmt.Println()29a.Inc(n)30fmt.Printf("log n = %v (added = %d)",a.Get(),n)31}()32mu.Unlock()33}()34}35time.Sleep(time.Second)36fmt.Printf("result n = %v",a.Get())37}
Сначала подумай без запуска — на собесе компилятора не будет.