我正试图完成Exercise: SlicesGo Go之旅.
但是我真的不明白我被要求做什么.
实施Pic.它应该返回一个长度为dy的片段,其中每个元素都是一个dx 8位无符号整数片.运行程序时,它将显示您的图片,将整数解释为灰度(井,蓝光)值.
我有以下代码
package main
import "golang.org/x/tour/pic"
func Pic(dx, dy int) [][]uint8 {
a := make([][]uint8, dy)
return a
}
func main() {
pic.Show(Pic)
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经创建了dy长度的切片.但是我不明白下一步.我是否需要创建一个for循环,在其中我将切片的每个元素分配给dx范围内的值?我不是要求代码,而是要求解释/澄清
小智 12
请在此处找到包含两种方法的建议。
package main
import "golang.org/x/tour/pic"
func Pic(dx, dy int) [][]uint8 {
p := make([][]uint8, dy)
for y := range p {
p[y] = make([]uint8, dx)
for x := range p[y] {
p[y][x] = uint8(x^y)
// p[y][x] = uint8(x*y)
// p[y][x] = uint8((x+y)/2)
}
}
return p
}
func _Pic(dx, dy int) [][]uint8 {
p := make([][]uint8, dy)
for i := 0; i < dy; i++ {
p[i] = make([]uint8, dx)
}
for y := range p {
for x := range p[y] {
p[y][x] = uint8(x^y)
// p[y][x] = uint8(x*y)
// p[y][x] = uint8((x+y)/2)
}
}
return p
}
func main() {
pic.Show(Pic)
}
Run Code Online (Sandbox Code Playgroud)