2

这段代码来自最流行的 Go 矩阵包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?有人知道这个函数在矩阵工作方面的作用吗?

提前致谢。

4

1 回答 1

2

它返回一个带有 cap - start 排队整数事件的通道。(即您可以从频道“读取”开始,开始+1 ..,上限,然后关闭)。

如果您在代码中四处寻找,它会使用类似的构造来为稀疏矩阵的非零条目的索引创建一个迭代器。查看 sparse.go。

它没有在我能找到的代码中的任何地方使用,它可能只是为了测试这个想法。

于 2013-11-02T22:54:01.497 回答