Увеличение переменной Structs внутри массива? - PullRequest
0 голосов
/ 26 марта 2020

Невозможно получить user.points для увеличения.

Userspoints = Struct.new(:name, :points)

player = "placeholder"
array = []

user = Userspoints.new(player, 0)

array << user.name << user.points

found = array.index(user.name)
points = array[found + 1]

array[user.points += 50]

print array

Ожидаемый вывод: ["placeholder", 50]

Фактический вывод: ["placeholder", 0]

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Когда вы получаете инструкцию

array[user.points += 50]

, ваш массив имеет значение "заполнитель" в позиции 0 и 0 в позиции 1

Так, когда вы пытаетесь вызвать инструкцию с помощью user.points вы пытаетесь получить доступ к позиции 50 вашего массива, которая в настоящее время не существует.

Чтобы обновить ваши точки, вы должны сделать это

array[array.index(user.points)] += 50
0 голосов
/ 27 марта 2020

Вы пытаетесь проиндексировать массив по результату присваивания. Я думаю, что вы хотите, это

...
array[found + 1] += 50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...