Go的切片练习出错

时间:2017-06-05 17:53:12

标签: go arguments

我正在尝试解决切片练习。我目前的解决方案是

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
    picture := make([][]uint8, dy)

    x := dx

    for iy := 0; iy < dy; iy++ {
        picture[iy] = make([]uint8, dx)

        for ix := 0; ix < dx; ix++ {
            x = (x+dy)/2
            picture[iy][ix] = uint8(x)
        }
    }

    return picture
}

func main() {
    pic.Show(Pic(1,2))
}

但是我收到以下错误

  

tmp / sandbox931798243 / main.go:23:不能使用Pic(1,2)(类型[] [] uint8)   as type func(int,int)[] [] uint8 in pic.Show

我做错了什么?可能是沙盒的错误吗?

1 个答案:

答案 0 :(得分:2)

func(int, int) [][]uint8采用类型为func(int, int) [][]uint8的单个参数 - 您需要将其传递给函数。您正在传递执行 [][]uint8的结果,即pic.Show(Pic) 。你想要的是:

Pic

传递符合要求的{{1}}本身。