【问题标题】:Error in Go's slices exerciseGo 切片练习中的错误
【发布时间】:2017-06-05 17:53:11
【问题描述】:

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

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) 作为类型 func(int, int) [][]uint8 在 pic.Show 的参数中

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

【问题讨论】:

    标签: go arguments


    【解决方案1】:

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

    pic.Show(Pic)
    

    传入你的函数Pic本身,符合要求。

    【讨论】:

    • 该死的,谢谢!您应该在询问之前阅读错误消息...再次感谢!
    • 错误消息通常有答案,但并不总是很清楚它们告诉你什么......
    猜你喜欢
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2016-05-12
    • 2014-01-31
    • 1970-01-01
    相关资源
    最近更新 更多