Email or username:

Password:

Forgot your password?
Umnik

Чёт туплю в #Go

```
demo := map[int][2]int{0: 1, 2}
demo[0][0] = 3
```

Почему, собственно, так нельзя? И есть ли более красивый способ изменить значения в массиве, чем:

```
//someMap is map[string][2]int{}

arr := someMap[SomeKey]
arr[0] += someFuncRetunrsInt1()
arr[1] += someFuncRetunrsInt2()
someMap[SomeKey] = arr
```

4 comments
mcstar

@umnik А что значит более красивое?

mcstar

@umnik Если заменишь массив на slice, то заработает в одну строку. Потому что в случае слайса там будут храниться ссылки на значения. В случае массива хранятся напрямую значения, причём, вроде на стеке. Т.е. слева у тебя литерал (значение, которое не присвоено переменной), в который ты пытаешься как в переменную что-то записать.

mcstar

@umnik при инициализации просто скобки забыл:
‘demo := map[int][2]int{0: {1, 2}}'

Go Up