2013-11-02 2 views
2

Этого код от самого популярного идут матрицы пакета 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, когда у нас есть только одна анонимная функция? И кто-нибудь знает, что эта функция делает с точки зрения работы матрицы?

Заранее спасибо.

ответ

2

Он возвращает канал с начальными целыми событиями с кешем. (т. е. вы можете «читать» start, start + 1 .., cap от канала, а затем он закрывается).

Если вы копаетесь в коде, он использует аналогичную конструкцию для создания итератора для индексов ненулевых записей разреженных матриц. Посмотрите в sparse.go.

Он не используется нигде в коде, который я могу найти, возможно, это было просто испытание идея.