Go指南练习_切片
源地址 https://tour.go-zh.org/moretypes/18
一、练习题描述
实现 Pic。它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片。当你运行此程序时,它会将每个整数解释为灰度值(好吧,其实是蓝度值)并显示它所对应的图像。
图像的选择由你来定。几个有趣的函数包括 (x+y)/2, x*y, x^y, x*log(y) 和 x%(y+1)。
(提示:需要使用循环来分配 [][]uint8 中的每个 []uint8;请使用 uint8(intValue) 在类型之间转换;你可能会用到 math 包中的函数。)

二、分析
- 外层切片的长度为dy;
- 内层切片的长度为dx;
- 内层切片中的每个元素值为 (x+y)/2,x*y...;
- 使用嵌套循环的方式计算颜色值。
三、Go代码
package main import "golang.org/x/tour/pic" func Pic(dx, dy int) [][]uint8 { a := make([][]uint8,dy) //外层切片 for x := range a{ b := make([]uint8,dx) //里层切片 for y := range b{ b[y] = uint8(x*y - 1) //给里层切片里的每一个元素赋值。其中x*y可以替换成别的函数 } a[x] = b //给外层切片里的每一个元素赋值 } return a } func main() { pic.Show(Pic) }
x*y 的运行结果

(x+y)/2 的运行结果

x^y 的运行结果

x%(y+1) 的运行结果

参考文档 https://blog.csdn.net/qq_27818541/article/details/54346106
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
您的资助是我最大的动力!
金额随意,欢迎来赏!


浙公网安备 33010602011771号