Go的切片练习中出错

bq3bfh9z  于 11个月前  发布在  Go
关注(0)|答案(2)|浏览(81)

我在试着解决切片的问题。我现在的解决方案是

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/sandbox 931798243/main.go:23:不能在pic的参数中使用Pic(1,2)(type [][] uint 8)作为类型func(int,int)[][] uint 8。Show
我做错了什么?是沙盒的问题吗?

zvokhttg

zvokhttg1#

pic.Show接受一个func(int, int) [][]uint8类型的参数-你需要传递一个函数给它。你传递的是 * 执行 * 一个func(int, int) [][]uint8的结果,即一个[][]uint8。你需要的是:

pic.Show(Pic)

字符串
传入满足要求的函数Pic本身。

rdlzhqv9

rdlzhqv92#

您可以将源代码 checkout 到pc。显示在这里:https://cs.opensource.google/go/x/tour/+/master:pic/pic.go
pic.Show将函数作为参数,然后调用值为256,

相关问题