跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 这个题有迷惑性
未分類
13 10 月 2020

这个题有迷惑性

这个题有迷惑性

資深大佬 : simenet 1

func f1() (r int) {

defer func () {     r++ }() return 10 

}

fmt.print(f1())

输出居然不是 10 ??????????

大佬有話說 (6)

  • 資深大佬 : BingoXuan

    应该是编译器优化吧,定义返回值 r,r 的值为 10,defer 执行函数使 r 自增,返回 r,结果是 11 。

  • 資深大佬 : gollwang

    你 return 10 不就相当于:
    r=10
    return r
    ?

  • 資深大佬 : nomansky

    golang 基础题了

  • 資深大佬 : Dganzh

    这里 return 过程是
    赋值 r=10 ;
    执行 defer,r=11 ;
    返回 r=11 ;

  • 資深大佬 : qq316107934

    基础题了,区别于:

    func f1() (int) {
    r:=10
    defer func () {
    r++
    }()
    return r
    }

  • 資深大佬 : reus

    是你自己没学好,官方博客都有一模一样的例子: https://blog.golang.org/defer-panic-and-recover

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具