Типы срезов

В настоящее время я прорабатываю отличный Tour of Go . Я закончил одно из упражнений (# 45) следующим решением:

func Pic(dx, dy int) [][]uint8 {
    pic := make([][]uint8, dy) /* type declaration */
    for i := range pic {
        pic[i] = make([]uint8, dx) /* again the type? */
        for j := range pic[i] {
            pic[i][j] = uint8((i+j)/2)
        }
    }
    return pic
}

Я не понимаю, почему я должен использовать make оператор с типом uint8 дважды (см. комментарии во фрагменте). Это кажется излишним, но я не могу понять, как это сделать по-другому.

62
задан Dave C 9 June 2015 в 16:08
поделиться