Eli*_*Eli 3 for-loop go declare
这个在这里出现了几次Go
,但我认为我的经历是独一无二的.这是我的代码.
type Stack []Weight
func newStack( size int, startSpread Spread ) Stack {
stack := make(Stack, size)
for _, curWeight := range stack {
curWeight = Weight{ startSpread, rand.Float64( ), rand.Float64( ) }
}
return stack
}
Run Code Online (Sandbox Code Playgroud)
为什么gc
告诉我我没用curWeight
?
请注意,范围construct(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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
250 次 |
最近记录: |