当前位置: 首页 > article >正文

《零基础Go语言算法实战》【题目 2-8】defer 和 return 语句

《零基础Go语言算法实战》

【题目 2-8】defer 和 return 语句

下面代码的输出是什么?请说明原因。

package main

import "fmt"

func main() {

 fmt.Println("result:", def())

}

func def() int {

 var i int

 defer func() {

 i++

 fmt.Println("a", i)

 }()

 defer func() {

 i++

 fmt.Println("b", i)

 }()

 return i

}

【解答】

b 1

a 2

result: 0

说明:多个 defer 的执行顺序为“后进先出”。defer、return、返回值三者的执行逻辑:return

最先执行,负责将结果写入返回值;接着 defer 开始执行;最后函数将返回值返回并退出。

3a3a2748a5bf404787bb996d108bc3c6.png

 


http://www.kler.cn/a/502056.html

相关文章:

  • 深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比
  • 一学就废|Python基础碎片,OS模块
  • 基于深度学习算法的AI图像视觉检测
  • 图像处理中实现 C++ 和 Python 的高效通信——ZeroMQ protobuf
  • 【Docker】入门教程
  • 有收到腾讯委托律师事务所向AppStore投诉带有【水印相机】主标题名称App的开发者吗
  • 逆向分析的小短文
  • 6Hive Sql 大全-Hive 函数
  • 【MySQL】基础语法详解:SELECT, INSERT, UPDATE, DELETE轻松上手
  • leetcode(hot100)10、11、12
  • 【HTML+CSS+JS+VUE】web前端教程-29-清除浮动
  • Spring Data Elasticsearch简介
  • 鸿蒙UI开发——颜色选择器
  • 【Ubuntu与Linux操作系统:七、系统高级管理】
  • 【论文速读】| 利用大语言模型在灰盒模糊测试中生成初始种子
  • Django Admin 中为自定义操作添加权限控制
  • Folder Icons v2.0.2 文件/文件夹图标美化 支持M、Intel芯片
  • 【南京工业大学主办 | JPCS独立出版 | 高届数、会议历史好 | 投稿领域广泛】第八届智能制造与自动化国际学术会议(IMA 2025)
  • Rank-Analysis——LOL 排位战绩查询分析器
  • 【LeetCode: 763. 划分字母区间 + 贪心】
  • Bash语言的语法糖
  • 对React中类组件和函数组件的理解?有什么区别?
  • ansible 检查目录大小
  • 【C++】size_t究竟是什么?全面解析与深入拓展
  • CSS3的aria-hidden学习
  • 每日一题(三):压缩字符串(行程长度编码)