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

news/2025/1/15 1:31:24 标签: go语言, 算法, go web, web编程, 程序员

《零基础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.niftyadmin.cn/n/5823329.html

相关文章

探秘 JMeter (Interleave Controller)交错控制器:解锁性能测试的隐藏密码

嘿,小伙伴们!今天咱们要把 JMeter 里超厉害的 Interleave Controller(交错控制器)研究个透,让你从新手直接进阶成高手,轻松拿捏各种性能测试难题! 一、Interleave Controller 深度剖析 所属家族…

改进萤火虫算法之八:量子萤火虫算法(Quantum-behaved Firfly Algorithm,QFA)

量子萤火虫算法(Quantum-behaved Firfly Algorithm,QFA)是对萤火虫算法的一种改进,旨在提升萤火虫个体的搜索能力。以下是对量子萤火虫算法的详细介绍: 一、萤火虫算法基础 萤火虫算法(Firefly Algorithm,FA)是一种基于群体智能的优化算法,由剑桥大学的Xin-She Yang在…

【数据分析】一、初探 Numpy

目录 前言1. 一维 array 的生成2. 一维 array 的基本操作2.1. 查看属性2.2. 花式索引2.3. 条件筛查2.4. 数据统计 3. n 维 array 的生成4. n 维 array 的基本操作4.1. 查看属性4.2. 查询和切片4.3. 花式索引4.4. 矩阵 前言 Numpy是Python的常用开源数值计算扩展库,用…

SpringCloud微服务:基于Nacos组件,整合Dubbo框架

dubbo和fegin的差异 一、Feign与Dubbo概述 Feign是一个声明式的Web服务客户端,使得编写HTTP客户端变得更简单。通过简单的注解,Feign将自动生成HTTP请求,使得服务调用更加便捷。而Dubbo是一个高性能、轻量级的Java RPC框架,提供了…

【AI游戏】基于OpenAI打造自动生成剧情的 Python 游戏

引言 你是否曾经梦想过成为一名游戏设计师,创造出引人入胜的冒险故事?今天,我将带你使用 OpenAI 的 GPT 模型和 Python 编写一个简单的自动生成剧情游戏。通过这个项目,你可以体验到人工智能在创意写作中的强大能力,并…

【算法】将单链表按值划分

问: 将单链表按某值划分成左边小、中间相等、右边大的形式 答: 笔试:初始化一个Node类型的数组,对数组进行partition,然后把数组中的节点元素串成链表 public static Node listPartition1(Node head, int pivot) {…

两分钟解决 :![rejected] master -> master (fetch first) , 无法正常push到远端库

目录 分析问题的原因解决 分析问题的原因 在git push的时候莫名遇到这种情况 若你在git上修改了如README.md的文件。由于本地是没有README.md文件的,所以导致 远端仓库git和本地不同步。 将远端、本地进行合并就可以很好的解决这个问题 注意:直接git pu…

Duke Humanoid:利用被动动力学实现节能双足机器人

在现代机器人技术中,如何实现高效的双足行走一直是一个备受关注的课题。Duke Humanoid项目通过结合被动动力学和强化学习策略,成功打造出一款高效节能的双足机器人。在现代机器人技术中,如何实现高效的双足行走一直是一个备受关注的课题。Duk…