2017-06-05 34 views
1

我正在嘗試解決切片練習。我的當前的解決方案是Go的切片練習錯誤

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

我在做什麼錯?這可能是沙箱的錯誤嗎?

回答

2

pic.Show需要一個類型爲func(int, int) [][]uint8的參數 - 您需要傳遞一個函數。您正在通過執行 a func(int, int) [][]uint8結果,即[][]uint8。你想要的是:

pic.Show(Pic) 

傳遞你的函數Pic本身,它符合要求。

+0

該死的,謝謝!在詢問之前,您應該閱讀錯誤信息......再次感謝! –

+1

錯誤消息通常有答案,但並不總是清楚他們告訴你什麼... – Adrian