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
}

ここには匿名関数が 1 つしかないのに、なぜゴルーチンが必要なのですか? そして、行列の仕事に関してこの関数が何をするか知っている人はいますか?

前もって感謝します。

4

1 に答える 1

2

キャップ付きのチャネルを返します - キューに入れられた整数イベントを開始します。(つまり、チャネルから start,start+1..,cap を「読み取る」ことができ、その後閉じます)。

コードを調べてみると、同様の種類の構造を使用して、スパース行列のゼロ以外のエントリのインデックス用のイテレータを作成しています。sparse.go を見てください。

私が見つけることができるコードのどこにも使用されていません。アイデアをテストするためだけに使用された可能性があります。

于 2013-11-02T22:54:01.497 に答える