教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang return 函数返回值的问题

Golang return 函数返回值的问题

发布时间:2022-03-09   编辑:jiaochengji.com
教程集为您提供Golang return 函数返回值的问题等资源,欢迎您收藏本站,我们将为您提供最新的Golang return 函数返回值的问题资源

这个问题源于看了这篇文章:https://blog.csdn.net/u010824081/article/details/77960209

首先,看一个函数返回值的问题

<pre class="has"><code class="language-Go">package main import ( "fmt" ) func main() { fmt.Println(test()) } func test() (a int) { a = 1 fmt.Println("can i see ?") return }</code></pre>

上面这个函数输出的是 :

<pre class="has"><code class="language-Go">can i see ? 1</code></pre> <pre class="has"><code class="language-Go">package main import ( "fmt" ) func main() { fmt.Println(test()) } func test() (a int) { a = 1 fmt.Println("can i see ?") return 2 }</code></pre>

上面这个函数输出的是:

<pre class="has"><code class="language-Go">can i see ? 2</code></pre>

当return后面为空是,函数声明时的 (a int) 会把 a 作为返回值,当 return 不为空时,会把 return 后面的值作为返回值

再看文章提到的那个例子:

<pre class="has"><code class="language-Go">func Test(person string) (work func() string) { work = func() string { return (person " is working") } return } func main() { p := Test("Sergey") // p 得到的是一个匿名函数,因为(work func() string) 指明Test函数返回一个work的匿名函数,且 return 后面为空 fmt.Println(p) // 输出结果:0x10b2790,这里输出的是work匿名函数的一个地址 fmt.Println(p()) // 输出结果:Sergey is working,这里执行了 work 函数 }</code></pre>

 

到此这篇关于“Golang return 函数返回值的问题”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang return 函数返回值的问题
golang 返回值问题
有关php递归函数返回值的使用方法
Golang中defer关键字实现原理
golang中的defer panic recover
golang中函数,方法和接口的浅析(函数篇)
【go系列4】golang 函数命名返回值
Golang面试题总结
golang面试题分析01_defer和函数返回值
Go 语言函数

[关闭]
~ ~