使用通道进行矩阵和盒子计数

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


慕妹3146593
浏览 155回答 1
1回答

湖上湖

它返回一个带有 cap - start 排队整数事件的通道。(即,您可以从频道“读取” start,start+1..,cap 然后关闭)。如果您仔细查看代码,它会使用类似的构造为稀疏矩阵的非零条目的索引创建迭代器。在 sparse.go 中查看。它没有在我能找到的代码中的任何地方使用,它可能只是为了测试这个想法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go