首页 > 其他分享 >Go 匿名返回值的坑——这道题据说 90% 的同学都答错了!

Go 匿名返回值的坑——这道题据说 90% 的同学都答错了!

时间:2023-06-24 12:22:24浏览次数:59  
标签:defer return 答错 int 匿名 这道题 func 90% 返回值

! https://zhuanlan.zhihu.com/p/639160955

今天分享的内容比较基础,准确地说是 Go 的语言特性——命名、匿名返回值。

先看下面的例子,猜测会输出什么?

package main

func main() {
	println(A())
	println(B())
}

func A() int {
	var i int
	defer func() {
		i = i + 3
	}()
	return i
}

func B() (i int) {
	defer func() {
		i = i + 3
	}()
	return i
}

|

(想好答案再滑下来)

|

|

|

|

|

|

|

|

|

|

正确答案:0 3。

A 和 B 两个函数的区别在于,B 的函数返回值是命名的,所以 defer 函数执行的修改,会作用到 B 本身;

而 A 函数返回值是匿名的,取决于 return 的时候求出来的值。


文章来源于本人博客,发布于 2018-06-02,原文链接:https://imlht.com/archives/168/

标签:defer,return,答错,int,匿名,这道题,func,90%,返回值
From: https://www.cnblogs.com/lofanmi/p/17500906.html

相关文章

  • OpenAI公布GPT-4:可在考试中超过90%的人类
    当地时间周二(3月14日),人工智能研究公司OpenAI公布了其大型语言模型的最新版本——GPT-4.该公司表示,GPT-4在许多专业测试中表现出超过绝大多数人类的水平。,时长24:27OpenAIGPT-4官方演示视频OpenAI表示,我们已经创建了GPT-4,这是OpenAI在深度学习规模化方面的最新里程碑。GPT-4是......
  • P1909 [NOIP2016 普及组] 买铅笔
    [NOIP2016普及组]买铅笔题目背景NOIP2016普及组T1题目描述P老师需要去商店买$n$支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有$3$种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。商店不允许......
  • 为什么90%的Android开发都成不了年薪百万的架构师?
    身为技术人,相信你也思考过这个问题:工作了几年,代码写得非常熟练,上线的程序也少有bug,时不时还能搞个技术分享,但接下来要往哪个方向发展呢?想来无非是3种选择:专精技术、转型管理、晋升架构师。包括我自己在内的很多朋友,都选择了第三种,或正朝这个方向努力。但我发现,有些人做了7、8......
  • ChatGPT常回答错误的几类问题
    下面几类问题,是ChatGPT常回答错误的。复杂的数学和科学问题GPT是一种基于统计模型的语言模型,它并不具备理解数学和科学概念的能力。因此,当问题涉及到深层次的数学和科学知识时,GPT可能会无法理解问题的本质,从而导致给出不确定或错误的答案。“MathPrompter:MathematicalReasoning......
  • UVA11090 Going in Cycle!!题解
    题目大意给定一个N个点M条边的带权有向图,求平均值最小的回路。解法看到这种题目,喜欢打暴力的我一下就想到:遍历整个图,找到每一个环,然后算出它们的平均值,最后比较出最小值。然而,呃...,会T飞...既然我们不能暴力找最小值,那还有什么别的办法吗?我们只需要输出一个最小值就行了,既然......
  • 西门子1200PLC和KTP700触摸屏控制西门子V90伺服电机例子程序 程序简介
    西门子1200PLC和KTP700触摸屏控制西门子V90伺服电机例子程序程序简介:可以实现V90伺服电机的正转、反转控制,相对位置和绝对位置运行,设置电机的当前位置、速度,显示电机的运行状态等功能,5000个脉冲对应一圈,参数设定和显示单位是脉冲硬件平台:西门子S7-1200PLC(CPU1215C)+KTP700触摸屏+......
  • 西门子1200PLC和KTP700触摸屏控制西门子V90伺服电机例子
    西门子1200PLC和KTP700触摸屏控制西门子V90伺服电机例子程序程序简介:可以实现V90伺服电机的正转、反转控制,相对位置和绝对位置运行,设置电机的当前位置、速度,显示电机的运行状态等功能,5000个脉冲对应一圈,参数设定和显示单位是脉冲硬件平台:西门子S7-1200PLC(CPU1215C)+KTP700触摸屏+......
  • i5/i7该选谁?差距大不大?i5-13490F、i7-13790F深度测试
    一、i5、i7还是性能差不多吗?自从2017年Zen架构发布开始,Intel与AMD在CPU性能竞争上就进入了激烈的内卷。随着双方在产品竞争上日趋白热化,同世代不同档次CPU产品的性能差距被明显拉大。那么,过去那种“i5、i7性能差不多,用i5性价比比较高”的观点是否依然成立?今天就带来Intel i5-1......
  • 最完美WIN11_Pro_22H2.22631.1900软件选装纯净版VIP50.3
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN11_PRO_22H2.22631.1900。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为22631.1900。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • [LeetCode] 2090. K Radius Subarray Averages
    Youaregivena 0-indexed array nums of n integers,andaninteger k.The k-radiusaverage forasubarrayof nums centered atsomeindex i withthe radius k istheaverageof all elementsin nums betweentheindices i-k and i+k (i......