此代码来自最流行的go matrix包https://github.com/skelterjohn/go.matrix/blob/go1/util.go
我用谷歌搜索了这个函数,似乎它是用于计算分形维数的。但在这个包中,这个函数从未被使用过,所以我很难理解这一点。
func countBoxes(start, cap int) chan box {
ints := make(chan box)
go func() {
for i := start; i < cap; i++ {
ints <- i
}
close(ints)
}()
return ints
}
当我们这里只有一个匿名函数时,为什么还需要 goroutine? 有人知道这个函数在矩阵工作方面的作用吗?
提前致谢。
最佳答案
它返回一个带有 cap 的 channel - 开始排队整数事件。 (即您可以“阅读” 开始,开始+1..,从 channel 上盖,然后关闭)。
如果您仔细研究代码,它会使用类似的构造来为稀疏矩阵的非零条目的索引创建迭代器。在sparse.go 中查找。
在我能找到的代码中没有使用它,它可能只是为了测试 这个想法。
关于matrix - 使用 channel 进行矩阵和盒子计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19746409/