gpt4 book ai didi

去参观#18。如何将整数传递给 Pic?

转载 作者:IT王子 更新时间:2023-10-29 02:11:50 25 4
gpt4 key购买 nike

以下代码错误,索引超出范围。我尝试将 main 修改为pic.Show(Pic(500, 500)) 但这会将参数从函数更改为返回类型并且无法编译。如果 pic.Show 需要一个函数作为参数,我该如何传递整数。

package main

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

func Pic(dx, dy int) [][]uint8 {

mypic := [][]uint8{}
for y := 0; y < dy; y++ {
mypic[y] = []uint8{}
for x := 0; x < dx; x++ {
mypic[y][x] = uint8((x + y) / 2)
}
}
return mypic
}

func main() {
pic.Show(Pic)
}

最佳答案

你不知道。 Go Tour 程序会将 Pic 测试值传递给您的程序。您的问题出在您的代码中:panic: runtime error: index out of range[][]uint8{}[]uint8{} 分配零个 y 和零个 x slice 元素。使用 make 分配您的 yx slice 。例如,

package main

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

func Pic(dx, dy int) [][]uint8 {
pixels := make([][]uint8, dy)
for y := 0; y < dy; y++ {
pixels[y] = make([]uint8, dx)
for x := 0; x < dx; x++ {
pixels[y][x] = uint8((x + y) / 2)
}
}
return pixels
}

func main() {
pic.Show(Pic)
}

引用:Making slices, maps and channels, The Go Programming Language Specification

关于去参观#18。如何将整数传递给 Pic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com