V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cuixiao603
V2EX  ›  Go 编程语言

自学 go 有个不明白的地方,请教一下

  •  
  •   cuixiao603 · 2018-09-30 23:53:24 +08:00 · 2621 次点击
    这是一个创建于 2006 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个 dx dy 是什么东西啊 他也没赋值啊 为什么可以用来创建切片
    package main

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

    func Pic(dx, dy int) [][]uint8 {
    // 外层 slice
    a := make([][]uint8, dy)
    for x := range a {
    // 里层 slice
    b := make([]uint8, dx)
    for y := range b {
    // 给里层 slice 每个元素赋值
    b[y] = uint8(x*y - 1)
    }
    // 给外层 slice 每个元素赋值
    a[x] = b
    }
    return a
    }

    func main() {
    pic.Show(Pic)
    }
    5 条回复    2018-10-16 05:34:41 +08:00
    Leigg
        1
    Leigg  
       2018-10-01 00:11:53 +08:00 via iPhone
    大 p 函数作为一个参数传入了 show 函数里面,你需要看 show 里面的实现
    gowk
        2
    gowk  
       2018-10-01 00:22:50 +08:00 via Android
    dx dy 只是形参,用来创建一个二维数组,重点是要理解中间变量 x y 是数组的索引而已,一,你没搞明白 range 的用法,二,学 Go 前要有别的语言的基础,比如 C
    akisaya
        3
    akisaya  
       2018-10-01 12:47:58 +08:00
    你这,是不是应该先理解下函数的定义和调用
    reus
        4
    reus  
       2018-10-01 16:16:06 +08:00
    Pic 作为参数传递给了 pic.Show
    Pic 是 pic.Show 里调用的,dx, dy 的值不用你操心
    zhizunzz
        5
    zhizunzz  
       2018-10-16 05:34:41 +08:00 via Android
    函数形参啊,show 方法会传进去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2813 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:26 · PVG 21:26 · LAX 06:26 · JFK 09:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.