我第一次尝试Go。在最后一个小时左右,我一直不知道为什么这段代码无效。
grid := make([][]string, 2)
for _, row := range grid {
row = []string{"foo", "bar"}
}
fmt.Println(grid)
我希望它能打印出类似
的内容[
["foo", "bar"]
["foo", "bar"]
]
但它拒绝使用消息row declared and not used
进行编译。
显然,我错过了关于2d切片和range
关键字的内容。有什么想法吗?
答案 0 :(得分:8)
cb(n//k,k)+[n%k]
不是对def cb(n, k):
if n < k:
return [n]
else:
return cb(n//k, k) + [n%k]
print(cb(22, 3))
中值的引用,它是切片值的副本。该错误是因为您将新切片分配给row
,但该值从未使用过。
这更有可能是你想要的:
http://play.golang.org/p/86yHqw_JX-
grid