首页   注册   登录
 TanLian 最近的时间轴更新

TanLian

  •   V2EX 第 191615 号会员,加入于 2016-09-13 16:07:23 +08:00,今日活跃度排名 10602
    TanLian 最近回复了
    趁着编译的时间进来划划水。。。
    @nekoyaki 呵呵,也许我的表达有问题吧。不过你可以参考这几篇文章,应该就能理解我说的了。
    https://studygolang.com/articles/7548
    https://www.golangtc.com/t/56667d4db09ecc6de0000025
    https://tiancaiamao.gitbooks.io/go-internals/content/zh/03.4.html
    http://blog.csdn.net/hittata/article/details/77836435
    我不敢保证这几篇文章的内容有价值,仅作参考,当然你也可以忽略。
    另祝君安好。
    @nekoyaki 看来你对 return 不理解,golang 的 return 本来就不是一个原子语句,这样解释没毛病,并且更利于他人理解,其他不想多说。
    @archliinux 公众号的每篇文章都是一个字一个字的码出来的好吗,如果你觉得某个知识点有错误,可以提出来我确定后会改。但是如果你看都没看的话就这这 BB,那么就恕不奉陪了。
    @archliinux 不想和你争辩,公众号怎么你了?你牛逼怎么不见你分析,就在这喷别人
    看来你对 golang 的 return 没理解,golang 和 C、C++不同,golang 的 return 不是一个原子语句,在你这个例子中,
    把 return 2 分成了两步,第一步是 i=2,第二步是 return i (注意是字母 i )。但由于 defer 的特性(这个不了解的话我也无能为力了),defer 是插在这两步中间的,所以实际上的执行过程是这样的,
    func testDefer() (i int) {
    i = 2

    func() {
    fmt.Println(i)
    i = 4
    }()

    return i
    }
    所以会打印 2,testDefer 函数的返回值是 4,明白?
    实际上这个题主要考察的是 return 和 defer,理解了这两个知识点,就不难理解为什么输出为 2 了。
    另可关注我的公众号“大后端开发”,讲解了 golang 的很多这方面的知识。
    @fhefh 多谢肯定哈
    想学 GO 的话可以关注我的公众号:大后端开发,里面都是我学习 GO 语言过程中的总结
    73 天前
    回复了 safedogcc 创建的主题 分享创造 [下一栈] 也许会重新定义你的阅读方式
    已安装 Android 版,挺好用,APP 的想法也不错。我好奇的是,这个 APP 是用原生语言写的吗?还是用类似于 react native 这种技术啊?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1984 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 9ms · UTC 15:14 · PVG 23:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1