Обратите внимание, что конструкция диапазона (for _, curWeight := range stack
) копирует элементы один за другим. Таким образом, вы просто копируете значение, а затем не используете копию для каких-либо дальнейших вычислений, печати или возврата. Вы просто отбрасываете копию снова.
Так что, я думаю, вашей первоначальной идеей было добавить вес в стек и вернуть его. Давайте сделаем это:
func newStack(size int, startSpread Spread) Stack {
stack := make(Stack, size)
for i := 0; i < size; i++ {
stack[i] = Weight{startSpread, rand.Float64(), rand.Float64()}
}
return stack
}