• Go指南练习_切片


    源地址 https://tour.go-zh.org/moretypes/18

    一、练习题描述

    实现 Pic。它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片。当你运行此程序时,它会将每个整数解释为灰度值(好吧,其实是蓝度值)并显示它所对应的图像。

    图像的选择由你来定。几个有趣的函数包括 (x+y)/2x*yx^yx*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

  • 相关阅读:
    Java基础面试题附答案 81-100(五)
    css练习--抽屉作业
    css
    HTML 快速入门
    selectors 模块完成文件上传下载功能
    IO 模型
    进程 线程 协程
    socket套接字
    异常处理
    面向对象
  • 原文地址:https://www.cnblogs.com/OctoptusLian/p/9207703.html
Copyright © 2020-2023  润新知