Ваш код достаточно ясен (хотя он, вероятно, содержит ошибку, поскольку вместо переменной result
должно было быть aDictionary
).В любом случае, намерение ясно и делает (или, как ожидается, сделает) то же, что делает известный объект, что Bag
.Итак, давайте посмотрим, как код работал бы с экземпляром Bag
(всегда полезно лучше узнать иерархию Collection
Smalltalk).Вот как вы можете получить тот же результат
tweetCountUserFrom: tweet in: aBag
aBag add: tweet user
Вот и все!
Когда пришло время увидеть, сколько tweets
a user
написано, вы будетенужно только оценить
aBag occurrencesOf: user
Внутренне, aBag
будет содержать Dictionary
и будет поддерживать его так, как вы хотели в своем коде.Однако, используя существующий объект, вы сделаете свой код проще, короче и проще для чтения и обслуживания.Вы также уменьшите вероятность неудачи, так как Bags
существует уже более 40 лет, так что у них мало шансов вас убить.